f9c1e232a04432d805a85ce34c5ba5ed78372b95
[rocksndiamonds.git] / src / Makefile
1 #=============================================================================#
2 # Makefile for Rocks'n'Diamonds 1.4.0                                         #
3 # (c) 1995-1999 Holger Schemel, aeglos@valinor.owl.de                         #
4 #=============================================================================#
5
6 ifndef PLATFORM                 # platform not specified -- try auto detection
7 ifdef COMSPEC
8 PLATFORM = dos
9 else
10 PLATFORM = unix
11 endif
12 endif
13
14 ifdef X11_PATH                  # path to X11 specified by top level Makefile
15 XINC_PATH = $(X11_PATH)/include
16 XLIB_PATH = $(X11_PATH)/lib
17 X11_INCL = -I$(XINC_PATH)
18 X11_LIBS = -L$(XLIB_PATH)
19 endif
20
21
22 ifeq ($(PLATFORM),dos)          # DOS / Windows
23
24 RM = del
25 PROGNAME = ../rocks.exe
26 LIBS = -s -lm -lalleg
27
28 else                            # Unix
29
30 RM = rm -f
31 PROGNAME = ../rocksndiamonds
32
33 ifeq ($(PLATFORM),solaris)
34 EXTRA_LIBS = -lnsl -lsocket -R$(XLIB_PATH)
35 endif
36
37 INCL = $(X11_INCL)
38 LIBS = $(X11_LIBS) -lX11 -lm $(EXTRA_LIBS)
39
40 endif
41
42
43 ifdef RO_GAME_DIR               # path to read-only game data specified
44 CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\""
45 endif
46
47 ifdef RW_GAME_DIR               # path to writable game data specified
48 CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\""
49 endif
50
51 ifdef SCORE_ENTRIES             # number of score entries per player specified
52 CONFIG_SCORE_ENTRIES = -D$(SCORE_ENTRIES)
53 endif
54
55 CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
56
57
58 CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(SOUNDS) $(JOYSTICK)
59
60 # OPTIONS = -DDEBUG -g -Wall -ansi -pedantic    # only for debugging purposes
61 OPTIONS = -DDEBUG -g -Wall                      # only for debugging purposes
62 # OPTIONS = -O3 -Wall -ansi -pedantic
63 # OPTIONS = -O3 -Wall
64 # OPTIONS = -O3
65
66 # SYSTEM = -DSYSV -Ae           # may be needed for HP-UX
67
68 CFLAGS = $(OPTIONS) $(SYSTEM) $(INCL) $(CONFIG)
69
70 SRCS =  main.c          \
71         init.c          \
72         events.c        \
73         tools.c         \
74         screens.c       \
75         misc.c          \
76         game.c          \
77         editor.c        \
78         buttons.c       \
79         files.c         \
80         tape.c          \
81         sound.c         \
82         joystick.c      \
83         cartoons.c      \
84         random.c        \
85         pcx.c           \
86         image.c         \
87         network.c       \
88         netserv.c       \
89         msdos.c
90
91 OBJS =  main.o          \
92         init.o          \
93         events.o        \
94         tools.o         \
95         screens.o       \
96         misc.o          \
97         game.o          \
98         editor.o        \
99         buttons.o       \
100         files.o         \
101         tape.o          \
102         sound.o         \
103         joystick.o      \
104         cartoons.o      \
105         random.o        \
106         pcx.o           \
107         image.o         \
108         network.o       \
109         netserv.o       \
110         msdos.o
111
112 all:    $(PROGNAME)
113
114 $(PROGNAME):    $(OBJS)
115         $(CC) $(CFLAGS) $(OBJS) $(LIBS) -o $(PROGNAME)
116
117 .c.o:
118         $(CC) $(CFLAGS) -c $*.c
119
120 clean:
121         $(RM) *.o
122         $(RM) $(PROGNAME)
123
124
125 #-----------------------------------------------------------------------------#
126 # development only stuff                                                      #
127 #-----------------------------------------------------------------------------#
128
129 depend:
130         for i in $(SRCS); do $(CPP) $(CFLAGS) -M $$i; done > .depend
131
132 ifeq (.depend,$(wildcard .depend))
133 include .depend
134 endif