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= EXE=game.exe OBJ=main.o OBJ+=system/Timer.o system/Video.o system/Keyboard.o OBJ+=graphics/Bitmap.o OBJ+=audio/rad20player.o audio/AudioPlayer.o audio/Music.o audio/Audio.o OBJ+=util/Log.o util/Files.o util/Bmp.o util/Gbm.o OBJ+=scenes/Scene.o scenes/IntroScene.o scenes/MainMenuScene.o scenes/GameScene.o 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) %.o : %.c ; $(CC) $(CFLAGS) -c $< -o $@ %.o : %.cpp ; $(CXX) $(CXXFLAGS) -c $< -o $@ assets: $(CONVERTER_EXE) $(GFX_ASSETS) %.gbm : %.bmp %_m.bmp ; ./$(CONVERTER_EXE) $@ $^