From ae0a60230ef2df8f6068481385f7f49697b97323 Mon Sep 17 00:00:00 2001 From: Scott Larson Date: Fri, 24 Jul 2020 09:20:40 -0700 Subject: [PATCH] Add files via upload --- ports/linux/gnu/example_build/Makefile | 85 ++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 ports/linux/gnu/example_build/Makefile diff --git a/ports/linux/gnu/example_build/Makefile b/ports/linux/gnu/example_build/Makefile new file mode 100644 index 00000000..17607360 --- /dev/null +++ b/ports/linux/gnu/example_build/Makefile @@ -0,0 +1,85 @@ +CC = gcc +AR=ar cr +DEFINES = -DTX_LINUX_DEBUG_ENABLE -D_GNU_SOURCE -DTX_LINUX_MULTI_CORE -DTX_ENABLE_EVENT_TRACE +ifdef NO_IDLE +DEFINES += -DTX_LINUX_NO_IDLE_ENABLE +TITLE = "No idle" +else +TITLE = "TX" +endif +ifdef ARCH64 +TITLE+=":64" +else +TITLE+=":32" +ARCH = -m32 +endif +COMMON_PATH=$(DIR)/../../../../common +INCLUDES = -I$(COMMON_PATH)/inc -I$(DIR)/../inc +CFLAGS = -g3 $(ARCH) -g3 -fPIC -gdwarf-2 -std=c99 $(DEFINES) $(INCLUDES) +LINK = gcc $(ARCH) +LIBS = -lpthread -lrt +FILE_LIST = file_list.mk +DEPEND_LIST = $(OUTPUT_FOLDER)/*.d +OUTPUT_FOLDER= .tmp +DIR=$(shell pwd) + +include $(FILE_LIST) + +all: $(OUTPUT_FOLDER) sample_threadx tx.so + echo $(TITLE) build done + +$(OUTPUT_FOLDER): + mkdir -p $@ + mkdir -p $@/generic/ + +sample_threadx: $(OUTPUT_FOLDER)/sample_threadx.o tx.a + echo LD $@ + $(LINK) -o $@ $^ $(LIBS) + +tx.a: $(OUTPUT_FOLDER) $(LINUX_OBJS) $(GENERIC_OBJS) + echo AR $@ + $(AR) $@ $(LINUX_OBJS) $(GENERIC_OBJS) + +tx.so: $(OUTPUT_FOLDER) $(LINUX_OBJS) $(GENERIC_OBJS) + cc -fPIC -shared -Wl,-soname,$@ -o $@ $(LINUX_OBJS) $(GENERIC_OBJS) $(LIBS) $(ARCH) + +$(OUTPUT_FOLDER)/sample_threadx.o: sample_threadx.c $(DIR)/Makefile + filename=`basename $<`; \ + echo CC $$filename; \ + $(CC) $(CFLAGS) -MT $@ -MD -MP -MF $(OUTPUT_FOLDER)/$$filename.d -c -o $@ $< + +$(OUTPUT_FOLDER)/%.o: ../src/%.c $(DIR)/Makefile + filename=`basename $<`; \ + echo CC $$filename; \ + $(CC) $(CFLAGS) -MT $@ -MD -MP -MF $(OUTPUT_FOLDER)/$$filename.d -c -o $@ $< + +$(OUTPUT_FOLDER)/generic/%.o: $(COMMON_PATH)/src/%.c $(DIR)/Makefile + filename=`basename $<`; \ + echo CC $$filename; \ + $(CC) $(CFLAGS) -MT $@ -MD -MP -MF $(OUTPUT_FOLDER)/$$filename.d -c -o $@ $< + +-include $(DEPEND_LIST) + +.SILENT: +.PHONY: files clean +files: + @echo "LINUX_SRCS = \\" > $(FILE_LIST); + -@for file in *.c; \ + do \ + filename=`basename $$file`; \ + [ "$$file" == "sample_threadx.c" ] || echo "$$filename \\" >> $(FILE_LIST); \ + done; + @printf "\n" >> $(FILE_LIST); + @echo 'LINUX_OBJS = $$(LINUX_SRCS:%.c=$(OUTPUT_FOLDER)/%.o)' >> $(FILE_LIST); + @printf "\n\n" >> $(FILE_LIST); + @echo "GENERIC_SRCS = \\" >> $(FILE_LIST); + -@for file in $(COMMON_PATH)/src/*.c; \ + do \ + filename=`basename $$file`; \ + [ "$$file" == "sample_threadx.c" ] || echo "$$filename \\" >> $(FILE_LIST); \ + done; + @printf "\n" >> $(FILE_LIST); + @echo 'GENERIC_OBJS = $$(GENERIC_SRCS:%.c=$(OUTPUT_FOLDER)/generic/%.o)' >> $(FILE_LIST); + +clean: + -rm -f -r $(OUTPUT_FOLDER) tx.a sample_threadx tx.so