libargo/Makefile

58 lines
1.2 KiB
Makefile
Raw Normal View History

2021-04-29 18:39:48 +00:00
CC = gcc
CFLAGS = -std=c99 -Wall -D_POSIX_C_SOURCE=201112L -D_XOPEN_SOURCE=500 -D_GNU_SOURCE -static -g
LD = gcc
LDFLAGS =
AR = ar
ARFLAGS = rcs
BIN_NAME = demo
2021-04-29 21:52:46 +00:00
A_LIB_NAME = libcson.a
SO_LIB_NAME = libcson.so
2021-04-29 18:39:48 +00:00
OBJS = obj/base.o obj/parse.o obj/query.o obj/stringify.o
DEPS = $(OBJS:%.o=%.d)
2021-04-29 20:16:27 +00:00
all: $(A_LIB_NAME) $(SO_LIB_NAME) $(BIN_NAME) test
2021-04-29 18:39:48 +00:00
$(BIN_NAME): obj/demo.o $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
2021-04-29 20:16:27 +00:00
$(A_LIB_NAME): CFLAGS += -fPIC
$(A_LIB_NAME): $(OBJS)
2021-04-29 18:39:48 +00:00
$(AR) $(ARFLAGS) $@ $^
2021-04-29 20:16:27 +00:00
$(SO_LIB_NAME): CFLAGS += -fPIC
$(SO_LIB_NAME): $(OBJS)
$(LD) -shared -o $@ $^
2021-04-29 18:39:48 +00:00
test: obj/test.o $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
-include $(DEPS)
obj/%.o: src/%.c obj
$(CC) $(CFLAGS) -MMD -c -o $@ $<
obj:
@mkdir -p obj
2021-05-04 09:05:22 +00:00
marshaller-demo: marshaller/gen/demo.tab.c marshaller/demo/demo.c marshaller/lib/marshaller.c $(A_LIB_NAME)
$(CC) $(CFLAGS) -Imarshaller/demo/ -Isrc/ -Imarshaller/lib/ -o $@ $^
marshaller/gen/demo.tab.c: marshaller/demo/demo.h marshaller/marshaller-gen
./marshaller/marshaller-gen -o $@ $<
marshaller/marshaller-gen:
$(MAKE) -C marshaller/ marshaller-gen
2021-04-29 18:39:48 +00:00
clean:
@echo "Cleaning up..."
@rm -f obj/*.o
@rm -f obj/*.d
@rm -f test
@rm -f $(BIN_NAME)
2021-04-29 20:16:27 +00:00
@rm -f $(A_LIB_NAME)
@rm -f $(SO_LIB_NAME)
$(MAKE) -C marshaller/ clean