# Makefile for Linéo 0.4dev # 2006 By Joachim Desoutter # With courtesy to Markus Kettunen # 2006-2007 Jonathan Buron ### Installation options: # These are the directories for `make install' # NOTICE: Use absolute paths! ~ means $HOME, but ONLY for PRIVATEDIR. ### Installation directory (Installation prefix) # If you don't have root privileges, set this to /home/tentacleman/lineo # for example, otherwise /. Don't use ~ or other environment variables! PREFIX = / ### Or if you don't want to run make install at all, uncomments the next line # and comment the line below. Compile and run with './bin/lineo' DATA_PATH = $(PREFIX)/usr/games/lineo/datas ### If you do make install, you may perhaps want to set these BINARYDIR = $(PREFIX)/usr/bin CONFIGDIR = $(PREFIX)/etc PRIVATEDIR = ~/.lineo ### définition du répertoire de travail PWD = $(shell pwd) TOP_DIR = $(PWD) ### To compile, this program requires: # SDL, SDL_image, SDL_mixer and SDL_net to compile. Libvorbis for music support. SOUND = 1 NETWORK = 1 MUSIC = 1 DEBUG = 1 # Select target system # Possible targets: DEFAULT (Linux and most of others too) # FREEBSD # NETBSD (use gmake) # MACOSX (not sure if replay and ghost work) # CROSS (for cross-compiling to win32) #This should probably be DEFAULT TARGET = DEFAULT ### C++ compiler to be used CXX_DEFAULT = g++ CXX_FREEBSD = g++ CXX_NETBSD = g++ CXX_MACOSX = g++ CXX_CROSS = i586-mingw32msvc-g++ CXX = $(CXX_$(TARGET)) ### SDL-Config in your system SDLCONFIG_DEFAULT = sdl-config SDLCONFIG_FREEBSD = sdl11-config SDLCONFIG_NETBSD = sdl-config SDLCONFIG_MACOSX = sdl-config SDLCONFIG_CROSS = i586-mingw32msvc-sdl-config SDLCONFIG = $(SDLCONFIG_$(TARGET)) ### Libs LIBS_DEFAULT = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net LIBS_FREEBSD = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net LIBS_NETBSD = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net LIBS_MACOSX = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net LIBS_CROSS = `$(SDLCONFIG) --libs` -lSDL_image -lSDL_mixer -lSDL_net LIBS = $(LIBS_$(TARGET)) ### Binary path BINARY_DEFAULT = lineo BINARY_FREEBSD = lineo BINARY_NETBSD = lineo BINARY_MACOSX = lineo BINARY_CROSS = lineo.exe BINARY = $(BINARY_$(TARGET)) ### CXX-Flags CXXFLAGS_DEFAULT = -g `$(SDLCONFIG) --cflags` -o $(BINARY) -O2 CXXFLAGS_FREEBSD = -g `$(SDLCONFIG) --cflags` -I/usr/X11R6/include -o bin/$(BINARY) -O2 CXXFLAGS_NETBSD = -g `$(SDLCONFIG) --cflags` -O2 -I/usr/pkg/include CXXFLAGS_MACOSX = -g `$(SDLCONFIG) --cflags` -o $(BINARY) -O2 CXXFLAGS_CROSS = -g `$(SDLCONFIG) --cflags` -o $(BINARY) -O2 CXXFLAGS = $(CXXFLAGS_$(TARGET)) ### Stripping command STRIP_DEFAULT = strip STRIP_FREEBSD = strip STRIP_NETBSD = strip STRIP_MACOSX = strip STRIP_CROSS = i586-mingw32msvc-strip STRIP = $(STRIP_$(TARGET)) ### Liste les sources pour en faire des objets SRC = $(wildcard $(TOP_DIR)/src/*.cpp) OBJ = $(SRC:%.cpp=%.o) BINARY_DEFAULT_ = lineinv BINARY_FREEBSD_ = lineinv BINARY_NETBSD_ = lineinv BINARY_MACOSX_ = lineinv BINARY_CROSS_ = lineinv.exe BINARY_ = $(BINARY_$(TARGET)_) CXXFLAGS_DEFAULT_ = -g `$(SDLCONFIG) --cflags` -o $(BINARY_) -O2 CXXFLAGS_FREEBSD_ = -g `$(SDLCONFIG) --cflags` -I/usr/X11R6/include -o $(BINARY_) -O2 CXXFLAGS_NETBSD = -g `$(SDLCONFIG) --cflags` -O2 -I/usr/pkg/include CXXFLAGS_MACOSX_ = -g `$(SDLCONFIG) --cflags` -o $(BINARY_) -O2 CXXFLAGS_CROSS_ = -g `$(SDLCONFIG) --cflags` -o $(BINARY_) -O2 CXXFLAGS_ = $(CXXFLAGS_$(TARGET)_) all: config main main: $(OBJ) @echo "Start compilation" @$(CXX) $(OBJ) $(LIBS) $(CXXFLAGS) @echo "Make binary" @$(STRIP) $(BINARY) icon: @$(ICON_CMD) @$(CXX) -o $(BINARY) $(OBJ) $(ICON) $(LIBS) @$(STRIP) $(BINARY) config: @echo "No particular config to do" install: mkdir -p $(BINARYDIR)/ mkdir -p $(CONFIGDIR)/ mkdir -p $(DATA_PATH)/ cp -R datas/* $(DATA_PATH)/ cp $(BINARY) $(BINARYDIR)/ chmod -R 744 $(DATA_PATH) chmod 755 `find $(DATA_PATH) -type d` uninstall: rm -rf $(DATA_PATH)/* rm -f $(BINARYDIR)/lineo rmdir -p --ignore-fail-on-non-empty $(DATA_PATH) rmdir -p --ignore-fail-on-non-empty $(CONFIGDIR) rmdir -p --ignore-fail-on-non-empty $(BINARYDIR) .PHONY : clean clean: rm -f src/*.o rm -f $(BINARY)