diff --git a/Makefile b/Makefile index e403d34..54a5a4f 100644 --- a/Makefile +++ b/Makefile @@ -9,10 +9,10 @@ CC_FLAGS = -mmcs51 -I. -Ihttpd -Iuip ASM = sdas8051 AFLAGS= -plosgff -SUBDIRS := tools uip httpd +SUBDIRS := tools SUBDIRSCLEAN=$(addsuffix clean,$(SUBDIRS)) -BUILDDIR = output/ +BUILDDIR = output VERSION_HEADER := version.h ifeq ($(MACHINE),) @@ -20,18 +20,23 @@ else CC_FLAGS += -DMACHINE_$(MACHINE) endif -all: create_build_dir $(VERSION_HEADER) $(SUBDIRS) $(BUILDDIR)rtlplayground.bin +all: create_build_dir $(VERSION_HEADER) $(SUBDIRS) $(BUILDDIR)/rtlplayground.bin create_build_dir: mkdir -p $(BUILDDIR) + mkdir -p $(BUILDDIR)/uip + mkdir -p $(BUILDDIR)/httpd -SRCS = rtlplayground.c rtl837x_flash.c rtl837x_leds.c rtl837x_phy.c rtl837x_port.c cmd_parser.c html_data.c rtl837x_igmp.c \ - rtl837x_stp.c rtl837x_pins.c dhcp.c machine.c cmd_editor.c rtl837x_bandwidth.c -OBJS = ${SRCS:%.c=$(BUILDDIR)%.rel} -OBJS += uip/$(BUILDDIR)/timer.rel uip/$(BUILDDIR)/uip-fw.rel uip/$(BUILDDIR)/uip-neighbor.rel uip/$(BUILDDIR)/uip-split.rel uip/$(BUILDDIR)/uip.rel uip/$(BUILDDIR)/uip_arp.rel uip/$(BUILDDIR)/uiplib.rel httpd/$(BUILDDIR)/httpd.rel httpd/$(BUILDDIR)/page_impl.rel +SRCS = rtlplayground.c rtl837x_flash.c rtl837x_leds.c rtl837x_phy.c rtl837x_port.c cmd_parser.c html_data.c rtl837x_igmp.c +SRCS += rtl837x_stp.c rtl837x_pins.c dhcp.c machine.c cmd_editor.c rtl837x_bandwidth.c +SRCS += uip/timer.c uip/uip.c uip/uip_arp.c uip/uiplib.c uip/uip-fw.c uip/uip-neighbor.c uip/uip-split.c +SRCS += httpd/httpd.c httpd/page_impl.c +OBJS = ${SRCS:%.c=$(BUILDDIR)/%.rel} +DEPS := ${SRCS:%.c=$(BUILDDIR)/%.d} +HTML := $(shell find $(html) -name '*.js' -or -name '*.html' -or -name '*.svg') -html_data.c html_data.h: html tools - tools/$(BUILDDIR)fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -b BANK1 -d html -p html_data +html_data.c html_data.h: $(HTML) tools/$(BUILDDIR)/fileadder + tools/$(BUILDDIR)/fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -b BANK1 -d html -p html_data $(VERSION_HEADER): @echo "#ifndef VERSION_H" > $(VERSION_HEADER) @@ -46,37 +51,31 @@ $(SUBDIRS): $(MAKE) -C $@ clean: - -make -C uip clean - -make -C httpd clean - -rm html_data.c html_data.h $(VERSION_HEADER) - -rm -r $(BUILDDIR) + -rm -f html_data.c html_data.h $(VERSION_HEADER) + -rm -rf $(BUILDDIR) -$(BUILDDIR)crtstart.rel: crtstart.asm - $(ASM) $(AFLAGS) -o $@ $< +$(BUILDDIR)/%.rel: %.c + $(CC) -MMD $(CC_FLAGS) -o $@ -c $< -$(BUILDDIR)crc16.rel: crc16.asm - $(ASM) $(AFLAGS) -o $@ $< - -$(BUILDDIR)%.rel: %.c - $(CC) $(CC_FLAGS) -o $@ -c $< - -$(BUILDDIR)%.rel: $(BUILDDIR)%.asm +$(BUILDDIR)/%.rel: %.asm ${ASM} ${AFLAGS} -o $@ $< # mv -f $(addprefix $(basename $^), .lst .rel .sym) . -$(BUILDDIR)rtlplayground.ihx: $(OBJS) $(BUILDDIR)crtstart.rel $(BUILDDIR)crc16.rel +$(BUILDDIR)/rtlplayground.ihx: $(OBJS) $(BUILDDIR)/crtstart.rel $(BUILDDIR)/crc16.rel $(CC) $(CC_FLAGS) -Wl-bHOME=0x00000 -Wl-bBANK1=0x14000 -Wl-bBANK2=0x24000 -Wl-r -o $@ $^ -$(BUILDDIR)rtlplayground.img: $(BUILDDIR)rtlplayground.ihx +$(BUILDDIR)/rtlplayground.img: $(BUILDDIR)/rtlplayground.ihx objcopy --input-target=ihex -O binary $< $@ -$(BUILDDIR)rtlplayground.bin: $(BUILDDIR)rtlplayground.img +$(BUILDDIR)/rtlplayground.bin: $(BUILDDIR)/rtlplayground.img if [ -e $@ ]; then rm $@; fi - tools/$(BUILDDIR)imagebuilder -i $^ $@ - tools/$(BUILDDIR)fileadder -a $(DEFAULT_CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@ - tools/$(BUILDDIR)fileadder -a $(CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@ - tools/$(BUILDDIR)fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -d html -p html_data $@ - tools/$(BUILDDIR)crc_calculator -u $@ + tools/$(BUILDDIR)/imagebuilder -i $^ $@ + tools/$(BUILDDIR)/fileadder -a $(DEFAULT_CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@ + tools/$(BUILDDIR)/fileadder -a $(CONFIG_LOCATION) -s $(IMAGESIZE) -d config.txt $@ + tools/$(BUILDDIR)/fileadder -a $(HTML_LOCATION) -s $(IMAGESIZE) -d html -p html_data $@ + tools/$(BUILDDIR)/crc_calculator -u $@ -.PHONY: clean all $(SUBDIRS) +.PHONY: clean all $(SUBDIRS) $(VERSION_HEADER) + +-include $(DEPS) \ No newline at end of file diff --git a/httpd/Makefile b/httpd/Makefile deleted file mode 100644 index 242c8b7..0000000 --- a/httpd/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -CC = sdcc -CC_FLAGS = -mmcs51 -I. -I.. -I../uip -ASM = sdas8051 -AFLAGS= -plosgff - -BUILDDIR = output/ - -SRCS = httpd.c page_impl.c -OBJS = ${SRCS:%.c=$(BUILDDIR)%.rel} - -all: create_build_dir $(OBJS) - -create_build_dir: - mkdir -p $(BUILDDIR) - -$(BUILDDIR)%.asm: %.c - $(CC) $(CC_FLAGS) -o $@ -c -S $< - -$(BUILDDIR)%.rel: $(BUILDDIR)%.asm - ${ASM} ${AFLAGS} -o $@ $^ - -clean: - rm -r $(BUILDDIR) - -.PHONY: all clean - diff --git a/tools/Makefile b/tools/Makefile index 3533faa..c7143c5 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,27 +1,27 @@ CC = gcc CCFLAGS = -Wall -o -BUILDDIR = output/ +BUILDDIR = output -all: create_build_dir $(BUILDDIR)injector $(BUILDDIR)fileadder $(BUILDDIR)httpd_sim\ - $(BUILDDIR)crc_calculator $(BUILDDIR)imagebuilder +all: create_build_dir $(BUILDDIR)/injector $(BUILDDIR)/fileadder $(BUILDDIR)/httpd_sim\ + $(BUILDDIR)/crc_calculator $(BUILDDIR)/imagebuilder create_build_dir: mkdir -p $(BUILDDIR) clean: - rm -r $(BUILDDIR) + rm -rf $(BUILDDIR) -$(BUILDDIR)injector: injector.c +$(BUILDDIR)/injector: injector.c gcc $^ $(CCFLAGS) $@ -$(BUILDDIR)fileadder: fileadder.c +$(BUILDDIR)/fileadder: fileadder.c gcc $^ $(CCFLAGS) $@ -$(BUILDDIR)crc_calculator: crc_calculator.c +$(BUILDDIR)/crc_calculator: crc_calculator.c gcc $^ $(CCFLAGS) $@ -$(BUILDDIR)httpd_sim: httpd_sim.c httpd_sim.h +$(BUILDDIR)/httpd_sim: httpd_sim.c httpd_sim.h gcc $< $(CCFLAGS) $@ -I/usr/include/json-c -ljson-c -$(BUILDDIR)imagebuilder: imagebuilder.c +$(BUILDDIR)/imagebuilder: imagebuilder.c gcc $^ $(CCFLAGS) $@ diff --git a/uip/Makefile b/uip/Makefile deleted file mode 100644 index d275a58..0000000 --- a/uip/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -CC = sdcc -CC_FLAGS = -mmcs51 -I. -I.. -I../httpd -ASM = sdas8051 -AFLAGS= -plosgff - -BUILDDIR = output/ - -SRCS = timer.c uip_arp.c uip.c uip-fw.c uiplib.c uip-neighbor.c uip-split.c -OBJS = ${SRCS:%.c=$(BUILDDIR)%.rel} - -all: create_build_dir $(OBJS) - -create_build_dir: - mkdir -p $(BUILDDIR) - -$(BUILDDIR)%.rel: %.c - $(CC) $(CC_FLAGS) -o $@ -c $< - -$(BUILDDIR)%.rel: $(BUILDDIR)%.asm - ${ASM} ${AFLAGS} $^ - -clean: - rm -r $(BUILDDIR) - -.PHONY: all clean -