update makefile for standalone use
parent
2fcc6602fd
commit
e947161555
51
Makefile
51
Makefile
|
@ -1,22 +1,16 @@
|
|||
PROJECT_ROOT = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||
ifeq ($(PROJECT_ROOT),$(CURDIR)/)
|
||||
BUILD_DIR=build/
|
||||
$(shell mkdir -p build)
|
||||
else
|
||||
BUILD_DIR=./
|
||||
endif
|
||||
|
||||
OBJS = pinetab2_framework.o game.o textbox.o inventory.o decompress_sprite.o
|
||||
OBJS = main.o game.o textbox.o inventory.o decompress_sprite.o
|
||||
SPRITES = $(patsubst $(PROJECT_ROOT)sprites/%.xcf,%,$(wildcard $(PROJECT_ROOT)sprites/*.xcf))
|
||||
NAVMESHES = $(patsubst $(PROJECT_ROOT)navmesh/%.tmx,%,$(wildcard $(PROJECT_ROOT)navmesh/*.tmx))
|
||||
|
||||
BUILD_MODE := debug
|
||||
ifeq ($(BUILD_MODE),debug)
|
||||
CFLAGS += -g
|
||||
else ifeq ($(BUILD_MODE),run)
|
||||
CFLAGS += -O2
|
||||
else ifeq ($(BUILD_MODE),linuxtools)
|
||||
CFLAGS += -g -pg -fprofile-arcs -ftest-coverage
|
||||
LDFLAGS += -pg -fprofile-arcs -ftest-coverage
|
||||
EXTRA_CLEAN += pinetab2_framework.gcda pinetab2_framework.gcno $(PROJECT_ROOT)gmon.out
|
||||
EXTRA_CMDS = rm -rf pinetab2_framework.gcda
|
||||
else
|
||||
$(error Build mode $(BUILD_MODE) not supported by this Makefile)
|
||||
endif
|
||||
|
||||
CXX := aarch64-linux-gnu-g++
|
||||
CC := aarch64-linux-gnu-gcc
|
||||
|
@ -26,42 +20,45 @@ CFLAGS += -I/usr/include
|
|||
OBJS += $(patsubst %,sprite_%.o,$(SPRITES))
|
||||
OBJS += $(patsubst %,navmesh_%.o,$(NAVMESHES))
|
||||
|
||||
all: pinetab2_framework $(patsubst %,%.png,$(SPRITES))
|
||||
EXE=$(BUILD_DIR)pt2game
|
||||
|
||||
pinetab2_framework: $(OBJS)
|
||||
# convert sprites to png so they can be included in tiled map files
|
||||
all: $(EXE) $(patsubst %,$(BUILD_DIR)%.png,$(SPRITES))
|
||||
|
||||
$(EXE): $(patsubst %,$(BUILD_DIR)%,$(OBJS))
|
||||
$(CXX) $(LDFLAGS) -o $@ $^
|
||||
$(EXTRA_CMDS)
|
||||
|
||||
%.o: $(PROJECT_ROOT)%.cpp
|
||||
$(BUILD_DIR)%.o: $(PROJECT_ROOT)%.cpp
|
||||
$(CXX) -c $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
|
||||
|
||||
%.o: $(PROJECT_ROOT)%.c
|
||||
$(BUILD_DIR)%.o: $(PROJECT_ROOT)%.c
|
||||
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
|
||||
|
||||
%.o: %.c
|
||||
$(BUILD_DIR)%.o: $(BUILD_DIR)%.c
|
||||
$(CXX) -c $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -o $@ $< -iquote "$(PROJECT_ROOT)"
|
||||
|
||||
clean:
|
||||
rm -fr pinetab2_framework $(OBJS) $(EXTRA_CLEAN)
|
||||
rm -fr $(BUILD_DIR)/$(EXE) $(patsubst %,$(BUILD_DIR)%,$(OBJS))
|
||||
|
||||
sprite_%.o: %.png $(PROJECT_ROOT)compress_sprite.py
|
||||
$(BUILD_DIR)sprite_%.o: $(BUILD_DIR)%.png $(PROJECT_ROOT)compress_sprite.py
|
||||
python3 "$(PROJECT_ROOT)compress_sprite.py" "$<" $(patsubst %.o,%.raw,$@)
|
||||
$(OBJCOPY) -I binary --rename-section .data=.rodata,alloc,load,readonly,data,contents $(patsubst %.o,%.raw,$@) $@
|
||||
cd $(BUILD_DIR) && $(OBJCOPY) -I binary --rename-section .data=.rodata,alloc,load,readonly,data,contents $(patsubst %.o,%.raw,$(notdir $@)) $(notdir $@)
|
||||
rm $(patsubst %.o,%.raw,$@)
|
||||
@# symbols are _binary_sprite_%_raw_start / _end / _size
|
||||
|
||||
navmesh_%.c: $(PROJECT_ROOT)navmesh/%.tmx $(PROJECT_ROOT)compile_navmesh.py
|
||||
python3 "$(PROJECT_ROOT)compile_navmesh.py" "$<" "$@" "$(patsubst navmesh_%.c,%,$@)"
|
||||
$(BUILD_DIR)navmesh_%.c: $(PROJECT_ROOT)navmesh/%.tmx $(PROJECT_ROOT)compile_navmesh.py
|
||||
python3 "$(PROJECT_ROOT)compile_navmesh.py" "$<" "$@" "$(patsubst $(BUILD_DIR)navmesh_%.c,%,$@)"
|
||||
@# symbols are navmesh_% and predef_%
|
||||
|
||||
navmesh_%.o: $(PROJECT_ROOT)compiled_structures.h $(PROJECT_ROOT)objids.h
|
||||
pinetab2_framework.o: $(PROJECT_ROOT)engine.h
|
||||
$(BUILD_DIR)navmesh_%.o: $(PROJECT_ROOT)compiled_structures.h $(PROJECT_ROOT)objids.h
|
||||
$(BUILD_DIR)main.o: $(PROJECT_ROOT)engine.h
|
||||
|
||||
%.png: $(PROJECT_ROOT)sprites/%.xcf
|
||||
$(BUILD_DIR)%.png: $(PROJECT_ROOT)sprites/%.xcf
|
||||
gimp -in -b '(let ((image (car (gimp-xcf-load 0 "$<" "$(notdir $<)")))) ;\
|
||||
;(gimp-image-scale image 1280 800) ;\
|
||||
(let ((layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))) ;\
|
||||
(file-png-save 1 image layer "$@" "$@" 0 9 0 0 0 0 0) ;\
|
||||
(file-png-save 1 image layer "$@" "$(notdir $@)" 0 9 0 0 0 0 0) ;\
|
||||
) ;\
|
||||
)' -b '(gimp-quit 0)'
|
||||
|
Loading…
Reference in New Issue