CC = gcc PREFIX = ./ BINARY=timesynk OBJS = main.o game.o context.o player.o npc.o message.o console.o tile.o map.o wall.o net/sockets.o helper.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) ./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) $(CURSES_OBJS) $(SDL_OBJS) $(BINARY) rm -f pack_tiles pack_tiles: pack_tiles.c $(CC) pack_tiles.c -o pack_tiles tiles: pack_tiles ./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 $(CC) $(CFLAGS) -c game.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 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