rnd-20000724-1-src
[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 USE_SDL = true
38 USE_SDL_OLD_LIBS = true
39
40 ifeq ($(USE_SDL_OLD_LIBS),true)
41 SDL_EXTRA_LIBS = -lIMG
42 else
43 SDL_EXTRA_LIBS = -lSDL_image
44 endif
45
46 SDL_CFLAGS := -DUSE_SDL_LIBRARY $(shell sdl-config --cflags)
47 SDL_LDFLAGS := $(SDL_EXTRA_LIBS) $(shell sdl-config --libs)
48
49 X11_CFLAGS = $(X11_INCL)
50 X11_LDFLAGS = $(X11_LIBS) -lX11
51
52 ifeq ($(USE_SDL),true)
53 SYS_CFLAGS  = $(SDL_CFLAGS)
54 SYS_LDFLAGS = $(SDL_LDFLAGS)
55 else
56 SYS_CFLAGS  = $(X11_CFLAGS)
57 SYS_LDFLAGS = $(X11_LDFLAGS)
58 endif
59
60 INCL = $(SYS_CFLAGS)
61 LIBS = $(SYS_LDFLAGS) $(EXTRA_LIBS) -lm
62
63 endif
64
65
66 ifdef RO_GAME_DIR               # path to read-only game data specified
67 CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\""
68 endif
69
70 ifdef RW_GAME_DIR               # path to writable game data specified
71 CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\""
72 endif
73
74 ifdef SCORE_ENTRIES             # number of score entries per player specified
75 CONFIG_SCORE_ENTRIES = -D$(SCORE_ENTRIES)
76 endif
77
78 CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
79
80
81 CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(SOUNDS) $(JOYSTICK)
82
83 # OPTIONS = -DDEBUG -g -Wall -ansi -pedantic    # only for debugging purposes
84 OPTIONS = -DDEBUG -g -Wall                      # only for debugging purposes
85 # OPTIONS = -O3 -Wall -ansi -pedantic
86 # OPTIONS = -O3 -Wall
87 # OPTIONS = -O3
88
89 # SYSTEM = -DSYSV -Ae                           # may be needed for HP-UX
90
91 CFLAGS = $(OPTIONS) $(SYSTEM) $(SYS_CFLAGS) $(CONFIG)
92
93 SRCS =  main.c          \
94         init.c          \
95         events.c        \
96         tools.c         \
97         screens.c       \
98         misc.c          \
99         game.c          \
100         editor.c        \
101         buttons.c       \
102         files.c         \
103         tape.c          \
104         sound.c         \
105         joystick.c      \
106         cartoons.c      \
107         random.c        \
108         pcx.c           \
109         image.c         \
110         network.c       \
111         netserv.c       \
112         msdos.c         \
113         system.c        \
114         x11.c           \
115         sdl.c
116
117 OBJS =  main.o          \
118         init.o          \
119         events.o        \
120         tools.o         \
121         screens.o       \
122         misc.o          \
123         game.o          \
124         editor.o        \
125         buttons.o       \
126         files.o         \
127         tape.o          \
128         sound.o         \
129         joystick.o      \
130         cartoons.o      \
131         random.o        \
132         pcx.o           \
133         image.o         \
134         network.o       \
135         netserv.o       \
136         msdos.o         \
137         system.o        \
138         x11.o           \
139         sdl.o
140
141 all:    $(PROGNAME)
142
143 $(PROGNAME):    $(OBJS)
144         $(CC) $(OBJS) $(LIBS) -o $(PROGNAME)
145
146 .c.o:
147         $(CC) $(CFLAGS) -c $*.c
148
149 clean:
150         $(RM) *.o
151         $(RM) $(PROGNAME)