#------------------------------------------------------------------------------
# Provide a target system hint for the Makefile.
+# Recognized PLATFORM values: darwin, mingw, maemo.
ifeq ($(shell uname), Darwin)
- DARWIN := 1
+ PLATFORM := darwin
endif
-# MINGW=1 also supported.
+ifdef _SBOX_DIR
+ PLATFORM := maemo
+endif
#------------------------------------------------------------------------------
# Paths (packagers might want to set DATADIR and LOCALEDIR)
DATADIR := ./data
LOCALEDIR := ./locale
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
USERDIR := Neverball
endif
# Compiler...
-ifeq ($(ENABLE_WII),1)
+ifeq ($(ENABLE_TILT),wii)
# -std=c99 because we need isnormal and -fms-extensions because
# libwiimote headers make heavy use of the "unnamed fields" GCC
# extension.
ALL_CPPFLAGS += -DENABLE_NLS=1
endif
-ifeq ($(ENABLE_WII),1)
- ALL_CPPFLAGS += -DENABLE_WII=1
+ifeq ($(PLATFORM),darwin)
+ ALL_CPPFLAGS += -I/opt/local/include
endif
-ifdef DARWIN
- ALL_CPPFLAGS += -I/opt/local/include
+ifeq ($(PLATFORM),maemo)
+ ALL_CPPFLAGS += -D__MAEMO__ $(shell pkg-config --cflags libosso)
endif
ALL_CPPFLAGS += $(CPPFLAGS)
SDL_LIBS := $(shell sdl-config --libs)
PNG_LIBS := $(shell libpng-config --libs)
+
+ifeq ($(ENABLE_FS),stdio)
+FS_LIBS :=
+else
FS_LIBS := -lphysfs
+endif
# The non-conditionalised values below are specific to the native
# system. The native system of this Makefile is Linux (or GNU+Linux if
INTL_LIBS :=
-ifeq ($(ENABLE_WII),1)
+ifeq ($(ENABLE_TILT),wii)
TILT_LIBS := -lcwiimote -lbluetooth
+else
+ifeq ($(ENABLE_TILT),loop)
+ TILT_LIBS := -lusb-1.0 -lfreespace
+endif
endif
OGL_LIBS := -lGL -lm
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
ifneq ($(ENABLE_NLS),0)
INTL_LIBS := -lintl
endif
OGL_LIBS := -lopengl32 -lm
endif
-ifdef DARWIN
+ifeq ($(PLATFORM),darwin)
ifneq ($(ENABLE_NLS),0)
INTL_LIBS := -lintl
endif
OGL_LIBS := -framework OpenGL
endif
+ifeq ($(PLATFORM),maemo)
+ OGL_LIBS := -lm -lSDL_gles -lEGL -lGLES_CM
+endif
+
BASE_LIBS := -ljpeg $(PNG_LIBS) $(FS_LIBS)
-ifdef DARWIN
+ifeq ($(PLATFORM),darwin)
BASE_LIBS += -L/opt/local/lib
endif
+ifeq ($(PLATFORM),maemo)
+ BASE_LIBS += $(shell pkg-config --libs libosso)
+endif
+
ALL_LIBS := $(SDL_LIBS) $(BASE_LIBS) $(TILT_LIBS) $(INTL_LIBS) -lSDL_ttf \
-lvorbisfile $(OGL_LIBS)
#------------------------------------------------------------------------------
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
EXT := .exe
endif
BALL_TARG := neverball$(EXT)
PUTT_TARG := neverputt$(EXT)
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
MAPC := $(WINE) ./$(MAPC_TARG)
else
MAPC := ./$(MAPC_TARG)
MAPC_OBJS := \
share/vec3.o \
share/base_image.o \
- share/solid.o \
+ share/solid_base.o \
share/binary.o \
share/base_config.o \
share/common.o \
- share/fs.o \
+ share/fs_common.o \
share/fs_png.o \
share/fs_jpg.o \
share/dir.o \
share/array.o \
+ share/list.o \
share/mapc.o
BALL_OBJS := \
share/lang.o \
share/vec3.o \
share/base_image.o \
share/image.o \
- share/solid.o \
- share/solid_gl.o \
- share/solid_phys.o \
+ share/solid_base.o \
+ share/solid_vary.o \
+ share/solid_draw.o \
+ share/solid_cmd.o \
+ share/solid_all.o \
share/part.o \
- share/back.o \
share/geom.o \
share/item.o \
share/ball.o \
share/base_config.o \
share/config.o \
share/video.o \
+ share/glext.o \
share/binary.o \
share/state.o \
share/audio.o \
share/text.o \
- share/tilt.o \
share/common.o \
share/keynames.o \
share/syswm.o \
share/cmd.o \
share/array.o \
share/dir.o \
- share/fs.o \
+ share/fs_common.o \
share/fs_png.o \
share/fs_jpg.o \
share/fs_rwops.o \
share/fs_ov.o \
+ share/sync.o \
ball/hud.o \
ball/game_common.o \
ball/game_client.o \
ball/game_server.o \
ball/game_proxy.o \
+ ball/game_draw.o \
ball/score.o \
ball/level.o \
ball/progress.o \
ball/demo.o \
ball/demo_dir.o \
ball/util.o \
+ ball/speed.o \
ball/st_conf.o \
ball/st_demo.o \
ball/st_save.o \
ball/st_goal.o \
- ball/st_fall_out.o \
- ball/st_time_out.o \
+ ball/st_fail.o \
ball/st_done.o \
ball/st_level.o \
ball/st_over.o \
share/vec3.o \
share/base_image.o \
share/image.o \
- share/solid.o \
- share/solid_gl.o \
- share/solid_phys.o \
+ share/solid_base.o \
+ share/solid_vary.o \
+ share/solid_draw.o \
+ share/solid_cmd.o \
+ share/solid_all.o \
share/part.o \
share/geom.o \
share/ball.o \
- share/back.o \
share/base_config.o \
share/config.o \
share/video.o \
+ share/glext.o \
share/binary.o \
share/audio.o \
share/state.o \
share/common.o \
share/syswm.o \
share/list.o \
- share/fs.o \
+ share/fs_common.o \
share/fs_png.o \
share/fs_jpg.o \
share/fs_rwops.o \
share/fs_ov.o \
share/dir.o \
share/array.o \
+ share/sync.o \
putt/hud.o \
putt/game.o \
putt/hole.o \
putt/st_conf.o \
putt/main.o
-ifdef MINGW
+BALL_OBJS += share/solid_sim_sol.o
+PUTT_OBJS += share/solid_sim_sol.o
+
+ifeq ($(ENABLE_FS),stdio)
+BALL_OBJS += share/fs_stdio.o
+PUTT_OBJS += share/fs_stdio.o
+MAPC_OBJS += share/fs_stdio.o
+else
+BALL_OBJS += share/fs_physfs.o
+PUTT_OBJS += share/fs_physfs.o
+MAPC_OBJS += share/fs_physfs.o
+endif
+
+ifeq ($(ENABLE_TILT),wii)
+BALL_OBJS += share/tilt_wii.o
+else
+ifeq ($(ENABLE_TILT),loop)
+BALL_OBJS += share/tilt_loop.o
+else
+ifeq ($(PLATFORM),maemo)
+BALL_OBJS += share/tilt_maemo.o
+BALL_OBJS += share/maemo.o
+else
+BALL_OBJS += share/tilt_null.o
+endif
+endif
+endif
+
+ifeq ($(PLATFORM),mingw)
BALL_OBJS += neverball.ico.o
PUTT_OBJS += neverputt.ico.o
endif
# Work around some extremely helpful sdl-config scripts.
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
$(MAPC_TARG) : ALL_CPPFLAGS := $(ALL_CPPFLAGS) -Umain
endif
#------------------------------------------------------------------------------
-ifdef MINGW
+ifeq ($(PLATFORM),mingw)
#------------------------------------------------------------------------------