blob: 02381801d03ab881ed0cee7b517522ea86247512 [file] [log] [blame] [raw]
NAME=demo
CC=@gcc
DB=@lldb
LIBS=-pthread -lssl -lcrypto
INCLUDE=/usr/local/include
OUT_ROOT=./tmp
SRC_ROOT=.
SRC_SUBFOLDERS=src src/http
#auto computed values
BIN=$(OUT_ROOT)/$(NAME)
SRCDIR= $(SRC_ROOT) $(foreach dir, $(SRC_SUBFOLDERS), $(addsuffix /,$(basename $(SRC_ROOT)))$(dir))
SRC = $(foreach dir, $(SRCDIR), $(wildcard $(addsuffix /, $(basename $(dir)))*.c))
BUILDTREE=$(foreach dir, $(SRCDIR), $(addsuffix /, $(basename $(OUT_ROOT)))$(basename $(dir)))
OBJS= $(foreach source, $(SRC), $(addprefix $(OUT_ROOT)/, $(addsuffix .o, $(basename $(source)))))
# the C flags
CFLAGS=-Wall -g -O3 $(foreach dir,$(INCLUDE),$(addprefix -I, $(dir))) $(foreach dir,$(SRCDIR),$(addprefix -I, $(dir)))
$(NAME): build
build: $(OBJS)
$(CC) -o $(BIN) $^ $(CFLAGS) $(LIBS)
$(OUT_ROOT)/%.o: %.c # $(SRC)/%.h
$(CC) -o $@ -c $^ $(CFLAGS)
clean:
-@rm -R $(OUT_ROOT)
-@mkdir -p $(BUILDTREE)
execute:
@$(BIN)
run: clean build execute
db: clean build
$(DB) $(BIN)