CC = gcc PREFIX = ./ BINARY=timesynk OBJS = main.o game.o parser.o context.o player.o inventory.o npc.o message.o console.o tile.o map.o wall.o net/sockets.o helper.o ../common/data.o CURSES_OBJS = interface/curses.o tiles/curses_tiles.o SDL_OBJS = interface/sdl.o tiles/tiles.o DEBUG = -g CFLAGS = -Wall -c $(DEBUG) CURSES_LFLAGS = -lcurses XCURSES_LFLAGS = -lXCurses SDL_LFLAGS = -lSDL -lSDL_image LFLAGS = -Wall $(DEBUG) ifeq ($(OS),Windows_NT) else UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),SunOS) LFLAGS += -lsocket -lnsl endif endif $(BINARY): $(OBJS) $(CURSES_OBJS) $(CC) $(OBJS) $(CURSES_OBJS) $(CURSES_LFLAGS) -o $(BINARY) sdl: tiles $(OBJS) $(SDL_OBJS) ../tools/pack_tiles $(CC) $(CFLAGS) -c tiles/tiles.c $(CC) $(OBJS) $(SDL_OBJS) $(SDL_LFLAGS) -o $(BINARY) curses: $(OBJS) $(CURSES_OBJS) $(CC) $(OBJS) $(CURSES_OBJS) $(CURSES_LFLAGS) -o $(BINARY) xcurses: $(OBJS) $(CURSES_OBJS) $(CC) $(OBJS) $(CURSES_OBJS) $(XCURSES_LFLAGS) -o $(BINARY) all: $(BINARY) clean: rm -f $(OBJS) tiles.o $(CURSES_OBJS) $(SDL_OBJS) $(BINARY) ../tools/pack_tiles: ../tools/pack_tiles.c $(CC) ../tools/pack_tiles.c -o ../tools/pack_tiles tiles: ../tools/pack_tiles ../tools/pack_tiles $(CC) $(CFLAGS) -c tiles/tiles.c curses_tiles: $(CC) $(CFLAGS) -c tiles/curses_tiles.c main.o: main.c stubs.h wall.h wall.c context.h interface/curses.c net/sockets.c $(CC) $(CFLAGS) -c main.c helper.o: helper.c helper.h $(CC) $(CFLAGS) -c helper.c tile.o: tile.c tile.h controller.h $(CC) $(CFLAGS) -c tile.c map.o: map.h map.c tile.h $(CC) $(CFLAGS) -c map.c wall.o: wall.h wall.c $(CC) $(CFLAGS) -c wall.c game.o: game.h game.c ../common/data.h $(CC) $(CFLAGS) -c game.c data.o: ../common/data.h ../common/data.c $(CC) $(CFLAGS) -c ../common/data.c parser.o: parser.h parser.c $(CC) $(CFLAGS) -c parser.c context.o: context.h context.c $(CC) $(CFLAGS) -c context.c player.o: game.h player.h player.c $(CC) $(CFLAGS) -c player.c inventory.o: inventory.h inventory.c $(CC) $(CFLAGS) -c inventory.c npc.o: game.h tile.h npc.h npc.c $(CC) $(CFLAGS) -c npc.c message.o: tile.h message.h message.c $(CC) $(CFLAGS) -c message.c console.o: console.h console.c $(CC) $(CFLAGS) -c console.c sockets.o: net/sockets.c stubs.h $(CC) $(CFLAGS) -c net/sockets.c curses.o: context.h interface/curses.c stubs.h $(CC) $(CFLAGS) -c interface/curses.c