dosgame1/Makefile

77 lines
2.1 KiB
Makefile

ifeq ($(TARGET),SDL)
CC=gcc
CXX=g++
LD=g++
STRIP=strip
SDL_INCLUDE=$(shell pkg-config --cflags sdl2)
SDL_LIBS=$(shell pkg-config --libs sdl2)
CFLAGS=-g -DBUILD_SDL $(SDL_INCLUDE)
CXXFLAGS=$(CFLAGS)
LDFLAGS=
LDLIBS=$(SDL_LIBS)
EXE=game
else
CC=/usr/local/djgpp/bin/i586-pc-msdosdjgpp-gcc
CXX=/usr/local/djgpp/bin/i586-pc-msdosdjgpp-g++
LD=/usr/local/djgpp/bin/i586-pc-msdosdjgpp-g++
STRIP=i586-pc-msdosdjgpp-strip
CFLAGS=-O3 -march=i486
CXXFLAGS=$(CFLAGS)
LDFLAGS=
LDLIBS=
EXE=game.exe
endif
OBJ=main.o
OBJ+=$(patsubst %.cpp,%.o,$(wildcard graphics/*.cpp))
OBJ+=$(patsubst %.cpp,%.o,$(wildcard audio/*.cpp))
OBJ+=$(patsubst %.cpp,%.o,$(wildcard util/*.cpp))
OBJ+=$(patsubst %.cpp,%.o,$(wildcard scenes/*.cpp))
ifeq ($(TARGET),SDL)
OBJ+=$(patsubst %.cpp,%.o,$(wildcard system/sdl/*.cpp))
else
OBJ+=$(patsubst %.cpp,%.o,$(wildcard system/dos/*.cpp))
endif
CONVERTER_CXX=g++
CONVERTER_EXE=gbmconv
CONVERTER_SRC=converter.cpp
CONVERTER_SRC+=graphics/Bitmap.cpp
CONVERTER_SRC+=util/Files.cpp util/Bmp.cpp util/Gbm.cpp
COMPILED_GFX_ASSETS=assets/font1.gbm assets/cow.gbm assets/witch.gbm
GFX_ASSETS=assets/bg.bmp $(COMPILED_GFX_ASSETS)
MUSIC_ASSETS=assets/rain.rad assets/getup.rad assets/spiral.rad
EXTRA_FILES=install.bat
DPMI_HOST=CWSDPMI.EXE
RELEASE_FILES=$(EXE) $(DPMI_HOST) $(GFX_ASSETS) $(MUSIC_ASSETS) $(EXTRA_FILES)
FLOPPY_IMG=game.img
.PHONY: all clean release assets floppy
all: $(CONVERTER_EXE) $(EXE)
clean: ; rm -rf $(OBJ) $(EXE) $(CONVERTER_EXE) $(FLOPPY_IMG) $(COMPILED_GFX_ASSETS) release
release: all assets; $(STRIP) $(EXE) && upx $(EXE); mkdir release; cp -Rv $(RELEASE_FILES) release/
floppy: release; dd if=/dev/zero of=$(FLOPPY_IMG) bs=512 count=2880 && mkfs.fat -F12 $(FLOPPY_IMG) && mcopy -i $(FLOPPY_IMG) -s release/* ::
$(CONVERTER_EXE): $(CONVERTER_SRC); $(CONVERTER_CXX) -o $@ $(CONVERTER_SRC)
$(EXE): $(OBJ); $(LD) $(LDFLAGS) -o $@ $(OBJ) $(LDLIBS)
%.o : %.c ; $(CC) $(CFLAGS) -c $< -o $@
%.o : %.cpp ; $(CXX) $(CXXFLAGS) -c $< -o $@
assets: $(CONVERTER_EXE) $(GFX_ASSETS)
%.gbm : %.bmp %_m.bmp ; ./$(CONVERTER_EXE) $@ $^