X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=geekos%2Fbuild%2FMakefile;h=1877773ae5d5d03efd9bf4d46e68187874af4258;hb=6593ee3c311ec87304c7bed52a9e6034338679fb;hp=29c05b92109fadf795cdb04a9c7097be661fddbb;hpb=d38e1d6edeee83bfb1e3e3c6e2367faa5055bdfe;p=palacios.git diff --git a/geekos/build/Makefile b/geekos/build/Makefile index 29c05b9..1877773 100644 --- a/geekos/build/Makefile +++ b/geekos/build/Makefile @@ -51,12 +51,16 @@ VPATH := $(PROJECT_ROOT)/src + # #TCPSTACK, uIP is used currently # -TCPSTACK=UIP - +UIP=OFF +# +#LWIP, ON -- used, OFF -- not used +# +LWIP=OFF # @@ -139,16 +143,29 @@ COMMON_C_OBJS := $(COMMON_C_SRCS:%.c=common/%.o) V3_LD_FLAGS := -L./palacios/ #V3_LIBS := -lxed -lv3vee V3_LIBS := ./palacios/libxed.a ./palacios/libv3vee.a ./palacios/libxed.a ./palacios/libv3vee.a +V3_OBJS := ./palacios/libxed.a ./palacios/libv3vee.a ./palacios/vm_kernel -TCPSTACK_C_SRCS := psock.c timer.c uip_arp.c uip.c uip-fw.c uiplib.c uip-neighbor.c uip-split.c resolv.c -TCPSTACK_C_OBJS := $(TCPSTACK_C_SRCS:%.c=net/%.o) -TCPSTACK_OBJS := $(TCPSTACK_C_OBJS) +ifeq ($(UIP),ON) + UIP_C_SRCS := psock.c timer.c uip_arp.c uip.c uip-fw.c uiplib.c uip-neighbor.c uip-split.c resolv.c + UIP_C_OBJS := $(UIP_C_SRCS:%.c=net/%.o) +else + UIP_C_SRCS := + UIP_C_OBJS := +endif +ifeq ($(LWIP),ON) + LWIP_OBJS := lwip + CC_LWIP_OPTS := -I$(PROJECT_ROOT)/include/lwip -I$(PROJECT_ROOT)/include/lwip/ipv4 -I$(PROJECT_ROOT)/include/libc -DLWIP_DEBUG +else + LWIP_OBJS := + CC_LWIP_OPTS := +endif +TCPSTACK_OBJS := $(UIP_C_OBJS) $(LWIP_OBJS) # ---------------------------------------------------------------------- @@ -241,7 +258,7 @@ OBJCOPY_FLAGS := -R .dynamic -R .note -R .comment # Compilation of kernel C source files geekos/%.o : geekos/%.c - $(TARGET_CC) -c $(CC_GENERAL_OPTS) $(CC_KERNEL_OPTS) $< -o geekos/$*.o + $(TARGET_CC) -c $(CC_GENERAL_OPTS) $(CC_KERNEL_OPTS) $(CC_LWIP_OPTS) $< -o geekos/$*.o # Compilation of kernel assembly source files @@ -266,6 +283,10 @@ net/%.o : net/%.c all : $(ALL_TARGETS) +lwip: + (cd ../src/lwip/build; make clean; make) + + #geekos/vmx_lowlevel.o: $(PROJECT_ROOT)/src/geekos/vmx_lowlevel.asm # $(NASM) -O99 \ # -f elf \ @@ -319,7 +340,7 @@ geekos/kernel.bin : geekos/kernel.exe $(PAD) $@ 512 # The kernel executable and symbol map. -geekos/kernel.exe : $(KERNEL_OBJS) $(COMMON_C_OBJS) $(TCPSTACK_OBJS) +geekos/kernel.exe : $(KERNEL_OBJS) $(COMMON_C_OBJS) $(TCPSTACK_OBJS) $(V3_OBJS) $(TARGET_LD) -o geekos/kernel.exe -Ttext $(KERNEL_BASE_ADDR) -e $(KERNEL_ENTRY) \ $(V3_LD_FLAGS) \ $(KERNEL_OBJS) $(COMMON_C_OBJS) $(TCPSTACK_OBJS) $(V3_LIBS) -b binary ./palacios/vm_kernel