diff --git a/lib/c/Makefile b/lib/c/Makefile index 960854837335b0884262cac262715ab4bae7e385..4dcf336f0bdf936045f25692e75d937505b1918c 100644 --- a/lib/c/Makefile +++ b/lib/c/Makefile @@ -1,12 +1,15 @@ ## Macros -# Use LLVM clang if it's found. -CC = $(shell hash clang 2>/dev/null && echo clang || echo gcc) -CFLAGS = -g -Wall -Werror -O3 -I. -Itest -DLABCOMM_ENCODER_LINEAR_SEARCH -LDFLAGS = -L. -LDLIBS_TEST = -Tlabcomm.linkscript -lcunit -llabcomm +CC=gcc +CFLAGS=-g -Wall -Werror -O3 -I. -Itest -DLABCOMM_ENCODER_LINEAR_SEARCH +LDFLAGS=-L. +#LDLIBS_TEST=-Tlabcomm.linkscript -lcunit -llabcomm +LDLIBS_TEST=-lcunit -llabcomm + +OBJS= labcomm.o \ + labcomm_dynamic_buffer_writer.o labcomm_fd_reader.o labcomm_fd_writer.o \ + labcomm_pthread_mutex_lock.o -OBJS= labcomm.o labcomm_dynamic_buffer_writer.o labcomm_fd_reader.o labcomm_fd_writer.o #FIXME: labcomm_mem_reader.o labcomm_mem_writer.o LABCOMM_JAR=../../compiler/labComm.jar LABCOMM=java -jar $(LABCOMM_JAR) @@ -35,11 +38,13 @@ endif .PHONY: all run-test clean distclean -all: liblabcomm.a +all: liblabcomm.a liblabcomm.so.1 liblabcomm.a: $(OBJS) ar -r liblabcomm.a $^ +liblabcomm.so.1: $(OBJS:%.o=%.pic.o) + gcc -shared -Wl,-soname,$@ -o $@ $^ -lc labcomm.o : labcomm.c labcomm.h labcomm_private.h @@ -85,6 +90,9 @@ $(LABCOMM_JAR): cd $(shell dirname $(LABCOMM_JAR)); ant jar @echo "======End building LabComm compiler======" +%.pic.o: %.c + $(CC) -fPIC $(CFLAGS) -c -o $@ $< + %.o: %.c %.h clean: @@ -98,6 +106,7 @@ clean: $(RM) $(TEST_DIR)/test_labcomm distclean: clean + $(RM) liblabcomm.so.1 $(RM) liblabcomm.a # Extra dependencies diff --git a/lib/c/labcomm_private.h b/lib/c/labcomm_private.h index b6af148b70b2634676b819c74b15a0768fc35c90..60c0ce2d9bbd6a21f5c1135ce957be9bf06bc3da 100644 --- a/lib/c/labcomm_private.h +++ b/lib/c/labcomm_private.h @@ -44,6 +44,12 @@ #define LABCOMM_DECLARE_SIGNATURE(name) \ struct labcomm_signature name __attribute__((section("labcomm"))) +/* + * Semi private lock declarations + */ +struct labcomm_lock { +}; + /* * Semi private decoder declarations */ diff --git a/lib/c/liblabcomm.so b/lib/c/liblabcomm.so new file mode 100644 index 0000000000000000000000000000000000000000..3f4a85c7ab3952654b5794a98a88bd09c4a06172 --- /dev/null +++ b/lib/c/liblabcomm.so @@ -0,0 +1,2 @@ +/*INPUT(liblabcomm.so.1 -ltinfo)*/ +INPUT(liblabcomm.a)