# This makefile is a bit hackish. I wrote it early in the AM. # Fohgiveuhness, please!! ifndef $(CFG) CFG=Debug endif # you can also pass : mingw32 and macosx ifndef $(OS) OS=linux endif TARGET=HolyShitAliens BINTARGET=$(TARGET) PROJECTHOME=$(shell pwd) SDL_CFLAGS=$(shell sdl-config --cflags) SDL_LDFLAGS=$(shell sdl-config --libs) LIBDIR=/usr/lib HEADERDIR=/usr/include ADDL_CFLAGS= ifeq "$(OS)" "mingw32" ADDL_CFLAGS=-mwindows -DBUILD_MINGW32 endif ifeq "$(OS)" "linux" ADDL_CFLAGS=-DBUILD_LINUX endif ifeq "$(OS)" "macosx" ADDL_CFLAGS=-DBUILD_MACOSX endif # default for release configs ifeq "$(CFG)" "Release" OUTDIR=Release ifeq "$(OS)" "mingw32" BINTARGET=$(TARGET).exe else BINTARGET=$(TARGET) endif LINKLIB=game CXXFLAGS=-I$(HEADERDIR) -I./cpp -c $(SDL_CFLAGS) $(ADDL_CFLAGS) endif ifeq "$(CFG)" "Debug" OUTDIR=Debug ifeq "$(OS)" "mingw32" BINTARGET=$(TARGET)-dbg.exe else BINTARGET=$(TARGET)-dbg endif LINKLIB=game-dbg CXXFLAGS=-pg -I$(HEADERDIR) -I./cpp -Werror -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) endif LINKLIBS=-L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf BINOBJ=$(OUTDIR)/GameDisplay.o \ $(OUTDIR)/GameLogic.o \ $(OUTDIR)/StarfieldBackground.o \ $(OUTDIR)/Character.o \ $(OUTDIR)/HUD.o \ $(OUTDIR)/main.o CC = gcc CXX = g++ LD = $(CXX) INSTALL = $(which install) $(OUTDIR)/%.o : cpp/%.cpp $(CXX) $(CXXFLAGS) -o $@ $< all: bin bin: $(BINOBJ) $(LD) -pg -o $(OUTDIR)/$(BINTARGET) \ $(BINOBJ) $(LINKLIBS) .PHONY: clean clean: rm -f $(OUTDIR)/*.o rm -f $(OUTDIR)/$(BINTARGET) .PHONY: rebuild rebuild: make clean make CFG=$(CFG) #.PHONY: install #install: # $(INSTALL) $(OUTDIR)/$(LIBTARGET) $(LIBDIR)/$(TARGET) # $(INSTALL) source/gcminfo.h $(HEADERDIR)/libgcm.h