mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
bb08c430fe
Merge pull request !240 from unsigned_0/N/A
76 lines
2.7 KiB
Makefile
76 lines
2.7 KiB
Makefile
#======================================================================================================================#
|
|
CC_SRC := $(wildcard *.c)
|
|
CC_SRC += $(wildcard PikaPython/pikascript-api/*.c)
|
|
CC_SRC += $(wildcard PikaPython/pikascript-core/*.c)
|
|
CC_SRC += $(wildcard PikaPython/pikascript-lib/PikaStdLib/*.c)
|
|
|
|
CC_INC := .
|
|
CC_INC += PikaPython/pikascript-api
|
|
CC_INC += PikaPython/pikascript-core
|
|
|
|
#======================================================================================================================#
|
|
PY_SRC := $(wildcard PikaPython/*.py)
|
|
|
|
#======================================================================================================================#
|
|
OUT := pika.exe
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
CC := gcc
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
CCFLAG += -std=gnu11 -O1 -MMD -g
|
|
CCFLAG += -ffunction-sections -fdata-sections
|
|
CCFLAG += -flto
|
|
|
|
LDFLAG += -Wl,--warn-common
|
|
LDFLAG += -Wl,--gc-sections
|
|
LDFLAG += -flto
|
|
|
|
#======================================================================================================================#
|
|
.DEFAULT_GOAL = all
|
|
_Comma := ,
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
ifeq (${wildcard obj},)
|
|
_NUL := ${shell mkdir obj}
|
|
endif
|
|
|
|
CC_OBJ := $(addprefix obj/,$(addsuffix .co,$(notdir $(CC_SRC))))
|
|
|
|
$(foreach obj,$(CC_SRC),$(eval obj/$(notdir $(obj)).co : $(obj)))
|
|
|
|
-include $(CC_OBJ:.co=.d)
|
|
|
|
CCSuffix := $(CCFLAG) $(addprefix -I,$(CC_INC)) $(addprefix -D,$(CC_DEF))
|
|
LDObject := $(CC_OBJ) $(addprefix -l,$(LD_LIB))
|
|
LDSuffix := $(LDFLAG) $(addprefix -Wl$(_Comma)-L,$(LD_INC))
|
|
|
|
endif
|
|
|
|
#======================================================================================================================#
|
|
.PHONY: all
|
|
all: $(OUT)
|
|
@echo Build Completed.
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
PikaPython/pikascript-api/__asset_pikaModules_py_a.c : $(PY_SRC)
|
|
@cd PikaPython && ./rust-msc-latest-win10.exe
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
$(OUT): $(CC_OBJ)
|
|
@echo Linking $(OUT) ...
|
|
@$(CC) $(LDObject) $(LDSuffix) -o $(OUT)
|
|
@echo
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
obj/%.co:
|
|
@echo Compile $(@F:.co=) ...
|
|
@$(CC) -c $< -o $@ $(CCSuffix)
|
|
|
|
#----------------------------------------------------------------------------------------------------------------------#
|
|
.PHONY: clean
|
|
clean:
|
|
@-rm -f pika.exe
|
|
@-rm -rf ./obj
|
|
@echo Clean Completed.
|