diff --git a/lib/Makefile b/lib/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..3fa0e1f182f70488ea3546e0c17598bc9d0466c9 --- /dev/null +++ b/lib/Makefile @@ -0,0 +1,9 @@ +all: + cd c ; make + cd csharp ; make + cd java ; make + +clean: + cd c ; make clean + cd csharp ; make clean + cd java ; make clean diff --git a/lib/c/Makefile b/lib/c/Makefile index 4f578ee40f92fdc8a3694737b3cbac11ceb5edc8..83f350fe5042a841322614cf58d9ff91e6f51959 100644 --- a/lib/c/Makefile +++ b/lib/c/Makefile @@ -7,8 +7,8 @@ LDFLAGS = -L. LDLIBS_TEST = -Tlabcomm.linkscript -lcunit -llabcomm OBJS= labcomm.o labcomm_dynamic_buffer_writer.o labcomm_fd_reader.o labcomm_fd_writer.o labcomm_mem_reader.o labcomm_mem_writer.o -LABCOMMC_PATH=../../compiler -LABCOMMC_JAR=$(LABCOMMC_PATH)/labComm.jar +LABCOMM_JAR=../../compiler/labComm.jar +LABCOMM=java -jar $(LABCOMM_JAR) TESTS=test_labcomm_basic_type_encoding test_labcomm_generated_encoding test_labcomm #FIXME: test_labcomm_errors @@ -33,7 +33,7 @@ endif .PHONY: all run-test clean distclean -all: liblabcomm.a test/test_labcomm_errors +all: liblabcomm.a liblabcomm.a: $(OBJS) ar -r liblabcomm.a $^ @@ -68,19 +68,19 @@ $(TEST_DIR)/gen: mkdir -p $@ $(TEST_DIR)/gen/%.c $(TEST_DIR)/gen/%.h: $(TEST_DIR)/%.lc | $(TEST_DIR)/gen - java -jar $(LABCOMMC_JAR) \ + $(LABCOMM) \ --c=$(TEST_DIR)/gen/$*.c \ --h=$(TEST_DIR)/gen/$*.h \ $< $(TEST_GEN_DIR)/%.c $(TEST_GEN_DIR)/%.h: $(TESTDATA_DIR)/%.lc \ - $(LABCOMMC_JAR) | $(TEST_GEN_DIR) - java -jar $(LABCOMMC_JAR) \ + $(LABCOMM_JAR) | $(TEST_GEN_DIR) + $(LABCOMM) \ --c=$(patsubst %.h,%.c,$@) --h=$(patsubst %.c,%.h,$@) $< -$(LABCOMMC_JAR): +$(LABCOMM_JAR): @echo "======Building LabComm compiler======" - cd $(LABCOMMC_PATH); ant jar + cd $(shell dirname $(LABCOMM_JAR)); ant jar @echo "======End building LabComm compiler======" %.o: %.c %.h diff --git a/lib/c/labcomm_fd_reader.c b/lib/c/labcomm_fd_reader.c index 62cb6b469265b3670976a3a801681c7a9fc5611a..6940e1ce993c6957e9615cc1b0c3f245ef999d66 100644 --- a/lib/c/labcomm_fd_reader.c +++ b/lib/c/labcomm_fd_reader.c @@ -16,6 +16,7 @@ int labcomm_fd_reader( switch (action) { case labcomm_reader_alloc: { +#ifndef LABCOMM_FD_OMIT_VERSION va_list ap; va_start(ap, action); char *version = va_arg(ap, char *); @@ -23,7 +24,7 @@ int labcomm_fd_reader( read(*fd, tmp, strlen(version)); free(tmp); - +#endif r->data = malloc(BUFFER_SIZE); if (r->data) { r->data_size = BUFFER_SIZE; @@ -34,7 +35,9 @@ int labcomm_fd_reader( } r->count = 0; r->pos = 0; - va_end(ap); +#ifndef LABCOMM_FD_OMIT_VERSION + va_end(ap); +#endif } break; case labcomm_reader_start: case labcomm_reader_continue: { diff --git a/lib/c/labcomm_fd_writer.c b/lib/c/labcomm_fd_writer.c index 196e18f3d6a47d8264f9ebfb47118255e7aaca41..0eecccdf4f9378e59847ae34b531b90f8ad7da5d 100644 --- a/lib/c/labcomm_fd_writer.c +++ b/lib/c/labcomm_fd_writer.c @@ -17,11 +17,13 @@ int labcomm_fd_writer( switch (action) { case labcomm_writer_alloc: { +#ifndef LABCOMM_FD_OMIT_VERSION va_list ap; va_start(ap, action); char *version = va_arg(ap, char *); write(*fd, version, strlen(version)); +#endif w->data = malloc(BUFFER_SIZE); if (! w->data) { result = -ENOMEM; @@ -33,7 +35,9 @@ int labcomm_fd_writer( w->count = BUFFER_SIZE; w->pos = 0; } +#ifndef LABCOMM_FD_OMIT_VERSION va_end(ap); +#endif } break; case labcomm_writer_free: { free(w->data); diff --git a/lib/c/test/generated_encoding.lc b/lib/c/test/generated_encoding.lc index 99cc300533e1da1c3ba48a40434e296bcfd708b7..f1f4b9b7ed08f7c044bb0e501a973ed027b34506 100644 --- a/lib/c/test/generated_encoding.lc +++ b/lib/c/test/generated_encoding.lc @@ -3,3 +3,5 @@ sample byte B; sample struct { int i; } S1; +sample int I[_]; +sample struct { int i; } P[_]; diff --git a/lib/java/Makefile b/lib/java/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e5394d665c11687fc5df3ec3976a4296116ddd81 --- /dev/null +++ b/lib/java/Makefile @@ -0,0 +1,27 @@ +MODULES=LabCommDispatcher \ + LabCommDecoderRegistry \ + LabComm \ + LabCommSample \ + LabCommHandler \ + LabCommEncoderRegistry \ + LabCommDecoder \ + LabCommType \ + LabCommEncoderChannel \ + LabCommEncoder \ + LabCommDecoderChannel \ + +all: labcomm.jar + +labcomm.jar: gen/JAVAC + echo $@ + cd gen ; jar cf ../$@ se/lth/control/labcomm/*.class + +gen: + mkdir gen + +gen/JAVAC: $(MODULES:%=se/lth/control/labcomm/%.java) Makefile | gen + javac -d gen $(filter %.java, $^) + touch $@ + +clean: + rm -rf labcomm.jar gen