feat: add module template
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
include config.mk
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
SHELL := cmd.exe
|
||||
MODULE_EXT = .dll
|
||||
MKDIR = if not exist $(subst /,\,$(1)) mkdir $(subst /,\,$(1))
|
||||
RMDIR = if exist $(subst /,\,$(1)) rd /s /q $(subst /,\,$(1))
|
||||
else
|
||||
MODULE_EXT = .so
|
||||
MKDIR = mkdir -p $(1)
|
||||
RMDIR = rm -rf $(1)
|
||||
endif
|
||||
|
||||
CC = cc
|
||||
CFLAGS_BASE = -Wall -Wpedantic -I$(INC_DIR) -fPIC
|
||||
|
||||
.PHONY: all debug release clean
|
||||
|
||||
all: debug
|
||||
|
||||
debug: $(BIN_DIR)/debug/$(MODULE_NAME)$(MODULE_EXT)
|
||||
release: $(BIN_DIR)/release/$(MODULE_NAME)$(MODULE_EXT)
|
||||
|
||||
$(BIN_DIR)/debug/$(MODULE_NAME)$(MODULE_EXT): $(SRCS:src/%.c=obj/debug/%.o)
|
||||
@$(call MKDIR,$(@D))
|
||||
$(CC) -shared -o $@ $^
|
||||
|
||||
obj/debug/%.o: src/%.c
|
||||
@$(call MKDIR,$(@D))
|
||||
$(CC) $(CFLAGS_BASE) -g -O0 -MMD -MP -c $< -o $@
|
||||
|
||||
$(BIN_DIR)/release/$(MODULE_NAME)$(MODULE_EXT): $(SRCS:src/%.c=obj/release/%.o)
|
||||
@$(call MKDIR,$(@D))
|
||||
$(CC) -shared -s -o $@ $^
|
||||
|
||||
obj/release/%.o: src/%.c
|
||||
@$(call MKDIR,$(@D))
|
||||
$(CC) $(CFLAGS_BASE) -O2 -MMD -MP -c $< -o $@
|
||||
|
||||
-include $(wildcard obj/debug/*.d)
|
||||
-include $(wildcard obj/release/*.d)
|
||||
|
||||
clean:
|
||||
@$(call RMDIR,$(OBJ_DIR))
|
||||
@$(call RMDIR,$(BIN_DIR))
|
||||
Reference in New Issue
Block a user