#Makefile done by H�lder Maur�cio Gomes Ferreira Filho (Speeder)
#I assume that you have already set the %path% variable to the right places.
#Example %path% (the one that I used to create this file).
# set path=%path%;c:\dev-cpp\bin;c:\awk\bin
############
# Programs #
############
CC = @gcc.exe
INFO = @echo
LINKER = @gcc.exe
MAKEDIR = @mkdir
AWK = @gawk
#####################
# Operating Systems #
#####################
LINUX = -DNOLINUX
SRC2 = getopt.o getopt1.o SDL_win32_main.o
OS = Win32
####################
# Compiler options #
####################
#Libraries: include path and linked libs
INCLUDE = -Iinclude -Iports\include -Iports\include\sdl
LIBS = SDL.lib
#Defines
DEFINES = -DOS=\"$(OS)\" $(LINUX) -DOUTPUT_FULLSCREEN
#Release type
# RELEASE may be:
# -g -Wall -ansi -pedantic for debug
# -O2 for release
# LINKERRELEASE may be:
# -s for release
RELEASE =
LINKERRELEASE = -s
#Binary code files
OBJFILES = main.o kernel.o resources.o dat.o disk.o compress.o \
output.o maps.o config.o room.o titles.o \
input.o kid.o states.o tiles.o walls.o anims.o object.o\
$(SRC2)
EXEFILE = bin\freeprince.exe
GENERATEDRESHEADERS = include/res_conf_parts.h include/res_conf_files.h\
include/res_conf_types.h include/res_conf_mods.h\
include/res_conf_resources.h
GENERATEDSTAHEADERS = include/states_conf_static.h \
include/states_conf_flags.h
#include/states_conf_properties.h
GENERATEDTILHEADERS = include/tiles_conf_types.h include/tiles_conf_groups.h
GENERATEDOTHHEADERS = include/walls_conf.h include/anims_conf.h include/text_conf.h\
include/room_conf.h
#Use this to temporary remove an option
OPTIONS = $(INCLUDE) $(DEFINES) $(RELEASE)
LINKEROPTIONS = $(LINKERRELEASE)
#############
# main file #
#############
$(EXEFILE): $(OBJFILES)
$(INFO) Linking files...
@rem if not exist bin mkdir bin
$(LINKER) $(OBJFILES) $(LIBS) $(LINKEROPTIONS) -o $(EXEFILE)
$(INFO) Program successfully compiled
###################
# command options #
###################
clean:
$(INFO) Erasing temporary object files...
del *.o
build: clean $(EXEFILE)
all: index build
headers: $(GENERATEDRESHEADERS) $(GENERATEDSTAHEADERS) $(GENERATEDTILHEADERS)\
$(GENERATEDOTHHEADERS)
install: download build
################
# Source files #
################
main.o: main.c include\kernel.h include\main.h
$(INFO) Compiling command line parser...
$(CC) $(OPTIONS) -c main.c
resources.o: res\resources.c include\resources.h include\compress.h \
include\dat.h include\disk.h include\res_conf.h
$(INFO) Compiling main resource manager module...
$(CC) $(OPTIONS) -c res\resources.c
disk.o: res\disk.c include\memory.h include\disk.h include\resources.h include\res_conf.h
$(INFO) Compiling resource disk access library...
$(CC) $(OPTIONS) -c res\disk.c
dat.o: res\dat.c include\disk.h include\dat.h
$(INFO) Compiling resource dat editing library...
$(CC) $(OPTIONS) -c res\dat.c
kernel.o: ker\kernel.c include\kernel.h include\resources.h include\res_conf.h include\output.h
$(INFO) Compiling main kernel...
$(CC) $(OPTIONS) -c ker\kernel.c
room.o: ker\room.c include\room.h include\resources.h include\res_conf.h
$(INFO) Compiling kernel room object...
$(CC) $(OPTIONS) -c ker\room.c
kid.o: ker\kid.c include\kid.h include\resources.h include\res_conf.h
$(INFO) Compiling kernel kid object...
$(CC) $(OPTIONS) -c ker\kid.c
titles.o: ker\titles.c include\resources.h include\res_conf.h
$(INFO) Compiling kernel titles module...
$(CC) $(OPTIONS) -c ker\titles.c
compress.o: res\compress.c include\compress.h include\memory.h \
include\disk.h
$(INFO) Compiling resource compression module...
$(CC) $(OPTIONS) -c res\compress.c
maps.o: res\maps.c include\maps.h
$(INFO) Compiling resource map handling module...
$(CC) $(OPTIONS) -c res\maps.c
output.o: out\output.c include\resources.h include\res_conf.h
$(INFO) Compiling main output module...
$(CC) $(OPTIONS) -c out\output.c
states.o: ker/states.c include/states.h include/states_conf.h\
include/resources.h include/res_conf.h include/types.h\
include/tiles.h include/tiles_conf.h
$(INFO) Compiling kernel states module...
$(CC) $(OPTIONS) -c ker\states.c
tiles.o: res/tiles.c include/tiles.h include/tiles_conf.h
$(INFO) Compiling resource tile classification module...
$(CC) $(OPTIONS) -c res\tiles.c
input.o: out\input.c include\input.h
$(INFO) Compiling main input module...
$(CC) $(OPTIONS) -c out\input.c
config.o: res\config.c include\resources.h include\res_conf.h
$(INFO) Compiling resource configuration module...
$(CC) $(OPTIONS) -c res\config.c
walls.o: res\walls.c include\walls.h include\walls_conf.h
$(INFO) Compiling wall algorithm module...
$(CC) $(OPTIONS) -c res\walls.c
anims.o: res\anims.c include\anims.h include\anims_conf.h
$(INFO) Compiling animation loader module...
$(CC) $(OPTIONS) -c res\anims.c
object.o: ker\object.c include\object.h include\resources.h include\res_conf.h\
include\states.h include\res_conf.h\
include\types.h include\tiles.h include\tiles_conf.h include\output.h\
include\kid.h
$(INFO) Compiling kernel kid object support...
$(CC) $(OPTIONS) -c ker\object.c
#AWK scripts: header generation
include/res_conf.h: $(GENERATEDRESHEADERS)
include/res_conf_parts.h: conf/parts.conf conf/awk/res_conf_parts.awk
$(INFO) Creating resource id parts configuration file...
$(AWK) -f conf/awk/res_conf_parts.awk conf/parts.conf>include/res_conf_parts.h
include/res_conf_files.h: conf/files.conf conf/awk/res_conf_files.awk
$(INFO) Creating resource dat files list configuration file...
$(AWK) -f conf/awk/res_conf_files.awk conf/files.conf>include/res_conf_files.h
include/res_conf_types.h: conf/types.conf conf/awk/res_conf_types.awk
$(INFO) Creating resource types configuration file...
$(AWK) -f conf/awk/res_conf_types.awk conf/types.conf>include/res_conf_types.h
include/res_conf_mods.h: conf/mods.conf conf/awk/res_conf_mods.awk
$(INFO) Creating resource modifiers configuration file...
$(AWK) -f conf/awk/res_conf_mods.awk conf/mods.conf>include/res_conf_mods.h
include/res_conf_resources.h: conf/resources.conf conf/awk/res_conf_resources.awk
$(INFO) Creating resource list configuration file...
$(AWK) -f conf/awk/res_conf_resources.awk conf/resources.conf>include/res_conf_resources.h
include/states_conf.h: $(GENERATEDSTAHEADERS)
include/states_conf_static.h: conf/awk/states_conf_static.awk conf/states/*.conf
$(INFO) Creating states list configuration file...
$(AWK) -f conf/awk/states_conf_static.awk conf/states/*.conf>include/states_conf_static.h
#include/states_conf_properties.h: conf/statesproperties.conf conf/awk/states_conf_properties.awk
# $(INFO) Creating states condition properties configuration file...
# $(AWK) -f conf/awk/states_conf_properties.awk conf/statesproperties.conf>include/states_conf_properties.h
include/states_conf_flags.h: conf/flags.conf conf/awk/states_conf_flags.awk
$(INFO) Creating states frame flags configuration file...
$(AWK) -f conf/awk/states_conf_flags.awk conf/flags.conf>include/states_conf_flags.h
include/tiles_conf.h: $(GENERATEDTILHEADERS)
include/tiles_conf_types.h: conf/tiles.conf conf/awk/tiles_conf_types.awk
$(INFO) Creating tile list configuration file...
$(AWK) -f conf/awk/tiles_conf_types.awk conf/tiles.conf>include/tiles_conf_types.h
include/tiles_conf_groups.h: conf/tiles.conf conf/awk/tiles_conf_groups.awk
$(INFO) Creating tile groups configuration file...
$(AWK) -f conf/awk/tiles_conf_groups.awk conf/tiles.conf>include/tiles_conf_groups.h
include/walls_conf.h: conf/walls.conf conf/awk/walls_conf.awk
$(INFO) Creating wall algorithm randomization file...
$(AWK) -f conf/awk/walls_conf.awk conf/walls.conf>include/walls_conf.h
include/anims_conf.h: conf/anims.conf conf/awk/anims_conf.awk
$(INFO) Binding animation indexes to the source...
$(AWK) -f conf/awk/anims_conf.awk conf/anims.conf>include/anims_conf.h
include/text_conf.h: conf/alphabet.conf conf/awk/text_conf.awk
$(INFO) Generating font alphabet...
$(AWK) -f conf/awk/text_conf.awk conf/alphabet.conf>include/text_conf.h
include/room_conf.h: conf/room.conf conf/awk/room_conf.awk
$(INFO) Generating room drawing code...
$(AWK) -f conf/awk/room_conf.awk conf/room.conf>include/room_conf.h
getopt.o: ports\getopt.c
$(INFO) Porting the Unix-like getopt function (first part)...
$(CC) $(OPTIONS) -c ports\getopt.c
getopt1.o: ports\getopt1.c
$(INFO) Porting the Unix-like getopt function (second part)...
$(CC) $(OPTIONS) -c ports\getopt1.c
SDL_win32_main.o: ports\SDL_win32_main.c
$(INFO) Porting the SDL main function...
$(CC) $(OPTIONS) -c ports\SDL_win32_main.c