From 86bab810f397f43a2e3ddbf4e3b1778ecb90252c Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Fri, 28 Nov 2014 16:14:52 +0100 Subject: [PATCH] More C cleanups --- lib/c/2006/Makefile | 73 +++----- lib/c/2006/labcomm2006_compat_vxworks.h | 1 + lib/c/2014/Makefile | 159 +++++++++--------- .../test/test_labcomm_generated_encoding.c | 2 + lib/c/version_compare.py | 10 +- 5 files changed, 109 insertions(+), 136 deletions(-) diff --git a/lib/c/2006/Makefile b/lib/c/2006/Makefile index 1fbd2fe..6d751d3 100644 --- a/lib/c/2006/Makefile +++ b/lib/c/2006/Makefile @@ -23,7 +23,7 @@ OBJS=labcomm$(VERSION).o \ labcomm$(VERSION)_fd_writer.o \ labcomm$(VERSION)_pthread_scheduler.o -LABCOMM_JAR=../../../compiler/labcomm$(VERSION)_compiler.jar +LABCOMM_JAR=../../../compiler/labcomm$(LIBVERSION)_compiler.jar LABCOMM=java -jar $(LABCOMM_JAR) TESTS=test_labcomm_basic_type_encoding \ @@ -36,8 +36,6 @@ TESTS=test_labcomm_basic_type_encoding \ TEST_DIR=test -#VPATH=$(TEST_DIR) - ## Targets .PHONY: all @@ -57,9 +55,6 @@ clean: $(RM) test/testdata/gen/*.[cho] $(RM) test/gen/*.[cho] $(RM) -rf test/gen - for x in $(TESTS); do \ - $(RM) $(TEST_DIR)/$$x ; \ - done .PHONY: distclean distclean: clean @@ -80,35 +75,46 @@ distclean: clean %.o: %.c %.h $(CC) $(CFLAGS) -c -o $@ $< - # rules invoked by 'test' .PHONY: run-test-% run-test-%: $(TEST_DIR)/gen/% | $(TEST_DIR)/gen $< +.PRECIOUS: $(TEST_DIR)/gen/% + $(TEST_DIR)/gen/%: $(TEST_DIR)/gen/%.o | $(TEST_DIR)/gen $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(TEST_DIR)/gen/%.o: $(TEST_DIR)/%.c | $(TEST_DIR)/gen $(CC) $(CFLAGS_TEST) -o $@ -c $< -# Extra compilation dependencies -labcomm_fd_reader.o: \ - labcomm_private.h -labcomm_fd_writer.o: \ - labcomm_private.h -labcomm_dynamic_buffer_writer.o: \ - labcomm_private.h +$(TEST_DIR)/gen/%.c $(TEST_DIR)/gen/%.h: $(TEST_DIR)/%.lc | $(TEST_DIR)/gen + $(LABCOMM) \ + --c=$(TEST_DIR)/gen/$*.c \ + --h=$(TEST_DIR)/gen/$*.h \ + $< +$(LABCOMM_JAR): + @echo "======Building LabComm compiler======" + cd $(shell dirname $(LABCOMM_JAR)); ant jar + @echo "======End building LabComm compiler======" + +$(TEST_DIR)/gen: + mkdir -p $@ + +# Extra compilation dependencies labcomm$(VERSION).o: \ labcomm$(VERSION).c \ labcomm$(VERSION).h \ labcomm$(VERSION)_private.h -labcomm$(VERSION)_fd_reader_writer.o: \ - labcomm$(VERSION)_fd_reader_writer.c \ - labcomm$(VERSION)_fd_reader_writer.h \ - labcomm$(VERSION).h \ +labcomm$(VERSION)_fd_reader.o: \ + labcomm$(VERSION)_private.h + +labcomm$(VERSION)_fd_writer.o: \ + labcomm$(VERSION)_private.h + +labcomm$(VERSION)_dynamic_buffer_writer.o: \ labcomm$(VERSION)_private.h $(TEST_DIR)/gen/test_labcomm_basic_type_encoding.o: \ @@ -136,34 +142,3 @@ $(TEST_DIR)/gen/test_labcomm_copy: \ $(TEST_DIR)/gen/generated_encoding.o \ $(TEST_DIR)/gen/test_sample.o \ $(TEST_DIR)/gen/more_types.o - -#$(TEST_DIR)/labcomm_mem_reader.o: labcomm_fd_reader_writer.c labcomm_fd_reader_writer.h - -#$(TEST_DIR)/labcomm_mem_writer.o: labcomm_mem_writer.c labcomm_mem_writer.h cppmacros.h - -ethaddr.o: ethaddr.c - -.PRECIOUS: $(TEST_DIR)/% - -$(TEST_DIR)/gen: - mkdir -p $@ - -.PRECIOUS: $(TEST_DIR)/gen/%.c -.PRECIOUS: $(TEST_DIR)/gen/%.h -$(TEST_DIR)/gen/%.c $(TEST_DIR)/gen/%.h: $(TEST_DIR)/%.lc | $(TEST_DIR)/gen - $(LABCOMM) \ - --c=$(TEST_DIR)/gen/$*.c \ - --h=$(TEST_DIR)/gen/$*.h \ - $< - -$(TEST_GEN_DIR)/%.c $(TEST_GEN_DIR)/%.h: $(TESTDATA_DIR)/%.lc \ - $(LABCOMM_JAR) | $(TEST_GEN_DIR) - $(LABCOMM) \ - --c=$(patsubst %.h,%.c,$@) --h=$(patsubst %.c,%.h,$@) $< - -$(LABCOMM_JAR): - @echo "======Building LabComm compiler======" - cd $(shell dirname $(LABCOMM_JAR)); ant jar - @echo "======End building LabComm compiler======" - - diff --git a/lib/c/2006/labcomm2006_compat_vxworks.h b/lib/c/2006/labcomm2006_compat_vxworks.h index 9a830b1..ca3b099 100644 --- a/lib/c/2006/labcomm2006_compat_vxworks.h +++ b/lib/c/2006/labcomm2006_compat_vxworks.h @@ -15,6 +15,7 @@ #ifdef __INT64_MAX__ #undef INT64_MAX #define INT64_MAX __INT64_MAX__ +#endif #if (CPU == PPC603) #undef _LITTLE_ENDIAN diff --git a/lib/c/2014/Makefile b/lib/c/2014/Makefile index 5fb5c8b..3c27b65 100644 --- a/lib/c/2014/Makefile +++ b/lib/c/2014/Makefile @@ -23,42 +23,39 @@ OBJS=labcomm$(VERSION).o \ labcomm$(VERSION)_fd_writer.o \ labcomm$(VERSION)_pthread_scheduler.o -#FIXME: labcomm_mem_reader.o labcomm_mem_writer.o -LABCOMM_JAR=../../../compiler/labcomm_compiler.jar +# Enable experimental objects by `make LABCOMM_EXPERIMENTAL=true` +ifeq ($(LABCOMM_EXPERIMENTAL),true) + OBJS += experimental/udp_hack.o experimental/ethaddr.o \ + experimental/labcomm_thr_reader_writer.o \ + experimental/ThrottleDrv/ethernet_drv.o \ + experimental/ThrottleDrv/throttle_drv.o \ + experimental/labcomm_udp_reader_writer.o\ + experimental/labcomm_sig_parser.o +endif + +LABCOMM_JAR=../../../compiler/labcomm$(LIBVERSION)_compiler.jar LABCOMM=java -jar $(LABCOMM_JAR) -TESTS=test_labcomm_basic_type_encoding test_labcomm_generated_encoding \ +TESTS=test_labcomm_basic_type_encoding \ + test_labcomm_generated_encoding \ test_signature_numbers \ test_labcomm \ test_labcomm_pthread_scheduler \ test_labcomm_copy -# -#FIXME: test_labcomm test_labcomm_errors -TEST_DIR=test +#FIXME: test_labcomm_errors -VPATH=$(TEST_DIR) - -# Enable experimental objects by invoking make like `make LABCOMM_EXPERIMENTAL=true` -ifeq ($(LABCOMM_EXPERIMENTAL),true) - OBJS += experimental/udp_hack.o experimental/ethaddr.o \ - experimental/labcomm_thr_reader_writer.o \ - experimental/ThrottleDrv/ethernet_drv.o \ - experimental/ThrottleDrv/throttle_drv.o \ - experimental/labcomm_udp_reader_writer.o\ - experimental/labcomm_sig_parser.o +TEST_DIR=test -experimental/test_sig_parser : experimental/labcomm_sig_parser.o experimental/test_sig_parser.c -endif - ## Targets -.PHONY: all run-test clean distclean - +.PHONY: all all: $(ALL_DEPS) +.PHONY: test test: all $(TESTS:%=run-test-%) +.PHONY: clean clean: $(RM) *.o $(RM) experimental/*.o @@ -68,102 +65,96 @@ clean: $(RM) test/test_labcomm_errors $(RM) test/testdata/gen/*.[cho] $(RM) test/gen/*.[cho] - -rmdir test/gen - for x in $(TESTS); do \ - $(RM) $(TEST_DIR)/$$x ; \ - done + $(RM) -rf test/gen +.PHONY: distclean distclean: clean $(RM) ../liblabcomm$(LIBVERSION).so.1 $(RM) ../liblabcomm$(LIBVERSION).a - # rules invoked by 'all' +../liblabcomm$(LIBVERSION).so.1: $(OBJS:%.o=%.pic.o) + $(call MAKESHARED,$@,$@,$^) + ../liblabcomm$(LIBVERSION).a: $(OBJS) ar -r $@ $^ -../liblabcomm$(LIBVERSION).so.1: $(OBJS:%.o=%.pic.o) - $(call MAKESHARED,$@,$@,$^) +# Enable experimental objects by `make LABCOMM_EXPERIMENTAL=true` +ifeq ($(LABCOMM_EXPERIMENTAL),true) +experimental/test_sig_parser : experimental/labcomm_sig_parser.o experimental/test_sig_parser.c +endif # compilation rules %.pic.o: %.c $(CC) -fPIC $(CFLAGS) -c -o $@ $< %.o: %.c %.h + $(CC) $(CFLAGS) -c -o $@ $< # rules invoked by 'test' - -# Extra compilation dependencies -labcomm$(VERSION).o: \ - labcomm$(VERSION).c \ - labcomm$(VERSION).h \ - labcomm$(VERSION)_private.h - -labcomm$(VERSION)_fd_reader_writer.o: \ - labcomm$(VERSION)_fd_reader_writer.c \ - labcomm$(VERSION)_fd_reader_writer.h \ - labcomm$(VERSION).h \ - labcomm$(VERSION)_private.h - -labcomm.o : labcomm.c labcomm.h labcomm_private.h - -labcomm_fd_reader_writer.o : labcomm_fd_reader_writer.c labcomm_fd_reader_writer.h labcomm.h labcomm_private.h - -2006/labcomm2006.o : 2006/labcomm2006.c 2006/labcomm2006.h 2006/labcomm2006_private.h - -2006/labcomm2006_fd_reader_writer.o : 2006/labcomm2006_fd_reader_writer.c 2006/labcomm2006_fd_reader_writer.h labcomm.h 2006/labcomm2006_private.h - -#$(TEST_DIR)/labcomm_mem_reader.o: labcomm_fd_reader_writer.c labcomm_fd_reader_writer.h - -#$(TEST_DIR)/labcomm_mem_writer.o: labcomm_mem_writer.c labcomm_mem_writer.h cppmacros.h - -ethaddr.o: ethaddr.c - -run-test-%: $(TEST_DIR)/% | $(TEST_DIR) +.PHONY: run-test-% +run-test-%: $(TEST_DIR)/gen/% | $(TEST_DIR)/gen $< -$(TEST_DIR)/%.o: $(TEST_DIR)/%.c - $(CC) $(CFLAGS) -o $@ -c $< +.PRECIOUS: $(TEST_DIR)/gen/% -.PRECIOUS: $(TEST_DIR)/% -$(TEST_DIR)/%: $(TEST_DIR)/%.o - $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) +$(TEST_DIR)/gen/%: $(TEST_DIR)/gen/%.o | $(TEST_DIR)/gen + $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) -$(TEST_DIR)/gen: - mkdir -p $@ +$(TEST_DIR)/gen/%.o: $(TEST_DIR)/%.c | $(TEST_DIR)/gen + $(CC) $(CFLAGS_TEST) -o $@ -c $< -.PRECIOUS: $(TEST_DIR)/gen/%.c -.PRECIOUS: $(TEST_DIR)/gen/%.h $(TEST_DIR)/gen/%.c $(TEST_DIR)/gen/%.h: $(TEST_DIR)/%.lc | $(TEST_DIR)/gen $(LABCOMM) \ --c=$(TEST_DIR)/gen/$*.c \ --h=$(TEST_DIR)/gen/$*.h \ $< -$(TEST_GEN_DIR)/%.c $(TEST_GEN_DIR)/%.h: $(TESTDATA_DIR)/%.lc \ - $(LABCOMM_JAR) | $(TEST_GEN_DIR) - $(LABCOMM) \ - --c=$(patsubst %.h,%.c,$@) --h=$(patsubst %.c,%.h,$@) $< - $(LABCOMM_JAR): @echo "======Building LabComm compiler======" cd $(shell dirname $(LABCOMM_JAR)); ant jar @echo "======End building LabComm compiler======" +$(TEST_DIR)/gen: + mkdir -p $@ + +# Extra compilation dependencies +labcomm$(VERSION).o: \ + labcomm$(VERSION).c \ + labcomm$(VERSION).h \ + labcomm$(VERSION)_private.h + +labcomm$(VERSION)_fd_reader.o: \ + labcomm$(VERSION)_private.h + +labcomm$(VERSION)_fd_writer.o: \ + labcomm$(VERSION)_private.h + +labcomm$(VERSION)_dynamic_buffer_writer.o: \ + labcomm$(VERSION)_private.h + +$(TEST_DIR)/gen/test_labcomm_basic_type_encoding.o: \ + labcomm$(VERSION)_private.h + +$(TEST_DIR)/gen/test_labcomm_generated_encoding.o: \ + labcomm$(VERSION)_private.h \ + $(TEST_DIR)/gen/generated_encoding.h + +$(TEST_DIR)/gen/test_labcomm_generated_encoding: \ + $(TEST_DIR)/gen/generated_encoding.o + +$(TEST_DIR)/gen/test_signature_numbers.c: \ + $(TEST_DIR)/gen/another_encoding.h \ + $(TEST_DIR)/gen/generated_encoding.h -# Extra dependencies -$(TEST_DIR)/test_labcomm_basic_type_encoding.o: labcomm_private.h +$(TEST_DIR)/gen/test_signature_numbers: \ + $(TEST_DIR)/gen/another_encoding.o \ + $(TEST_DIR)/gen/generated_encoding.o -$(TEST_DIR)/test_labcomm_generated_encoding.o: labcomm_private.h -$(TEST_DIR)/test_labcomm_generated_encoding.o: $(TEST_DIR)/gen/generated_encoding.h -$(TEST_DIR)/test_labcomm_generated_encoding : $(TEST_DIR)/gen/generated_encoding.o +$(TEST_DIR)/gen/test_labcomm: \ + $(TEST_DIR)/gen/test_sample.o -$(TEST_DIR)/test_labcomm: $(TEST_DIR)/gen/test_sample.o -$(TEST_DIR)/test_signature_numbers.c: $(TEST_DIR)/gen/another_encoding.h -$(TEST_DIR)/test_signature_numbers.c: $(TEST_DIR)/gen/generated_encoding.h -$(TEST_DIR)/test_signature_numbers: $(TEST_DIR)/gen/another_encoding.o -$(TEST_DIR)/test_signature_numbers: $(TEST_DIR)/gen/generated_encoding.o -$(TEST_DIR)/test_labcomm_copy: $(TEST_DIR)/gen/generated_encoding.o $(TEST_DIR)/gen/test_sample.o $(TEST_DIR)/gen/more_types.o -labcomm_fd_reader.o: labcomm_private.h -labcomm_fd_writer.o: labcomm_private.h -labcomm_dynamic_buffer_writer.o: labcomm_private.h +$(TEST_DIR)/gen/test_labcomm_copy: \ + $(TEST_DIR)/gen/generated_encoding.o \ + $(TEST_DIR)/gen/test_sample.o \ + $(TEST_DIR)/gen/more_types.o diff --git a/lib/c/2014/test/test_labcomm_generated_encoding.c b/lib/c/2014/test/test_labcomm_generated_encoding.c index 06e972d..58462aa 100644 --- a/lib/c/2014/test/test_labcomm_generated_encoding.c +++ b/lib/c/2014/test/test_labcomm_generated_encoding.c @@ -186,6 +186,8 @@ int main(void) labcomm_default_error_handler, labcomm_default_memory, labcomm_pthread_scheduler_new(labcomm_default_memory)); + EXPECT({ 0x01, 0x0c, 0x0b, + 'L', 'a', 'b', 'C', 'o', 'm', 'm', '2','0', '1', '4' }); labcomm_encoder_ioctl(encoder, IOCTL_WRITER_RESET); /* Register twice to make sure that only one registration gets encoded */ diff --git a/lib/c/version_compare.py b/lib/c/version_compare.py index 1b04ee7..f3e90d8 100755 --- a/lib/c/version_compare.py +++ b/lib/c/version_compare.py @@ -48,8 +48,12 @@ if __name__ == '__main__': print "Only in %s:" %sys.argv[4], b.path b = B.next() else: - print a.path, b.path - print ''.join(difflib.unified_diff(a.lines, b.lines, - a.path, b.path)) + equal = True + for l in difflib.unified_diff(a.lines, b.lines, a.path, b.path): + print l, + equal = False + if equal: + print "Identical", a.path, b.path + a = A.next() b = B.next() -- GitLab