-# SYSTEM = -Aa -D_HPUX_SOURCE -Dhpux # for HP-UX (obsolete)
-# SYSTEM = -DSYSV -Ae # for HP-UX
-# SYSTEM = -DSYSV # for systems without 'usleep()'
-# INCL = -I/usr/include/X11R5 # for HP-UX and others
-# LIBS = -lXpm -lX11 -lm
-# LIBS = -L/usr/lib/X11R5 -lXpm -lX11 -lm # for HP-UX and others
-LIBS = -lXpm -lXpm -lXpm -lX11 -lm # triple -lXpm; else I got an error...
+ifeq ($(TARGET),allegro)
+SYS_CFLAGS = -DTARGET_ALLEGRO -I$(CROSS_PATH_MSDOS)/include
+SYS_LDFLAGS = -lalleg
+endif
+
+endif # (PLATFORM != msdos)
+
+
+ifdef RO_GAME_DIR # path to read-only game data specified
+CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\""
+endif
+
+ifdef RW_GAME_DIR # path to writable game data specified
+CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\""
+endif
+
+ifdef SCORE_ENTRIES # number of score entries per player specified
+CONFIG_SCORE_ENTRIES = -D$(SCORE_ENTRIES)
+endif
+
+CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
+
+
+CONFIG = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(JOYSTICK)
+DEBUG = -DDEBUG -g
+# PROFILING = $(PROFILING_FLAGS)
+
+# OPTIONS = $(DEBUG) -Wall # only for debugging purposes
+# OPTIONS = $(DEBUG) -O3 -Wall # only for debugging purposes
+# OPTIONS = $(DEBUG) -Wall -ansi -pedantic # only for debugging purposes
+# OPTIONS = -O3 -Wall -ansi -pedantic
+OPTIONS = -O3 -Wall
+# OPTIONS = -O3
+# OPTIONS = -DSYSV -Ae # may be needed for HP-UX
+
+CFLAGS = $(OPTIONS) $(SYS_CFLAGS) $(CONFIG)
+LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) -lm