mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2024-12-29 10:26:36 +01:00
3c6405d0d1
A full robot vs. robot game now works between two Treos. Added UI to choose BT as transport mechanism, and added new send proc to establish socket connection between host and guest. Works only for two devices: no piconet yet. No error recovery, ability to quit game in middle, start new game, etc.
322 lines
8.9 KiB
Makefile
322 lines
8.9 KiB
Makefile
# -*- mode: Makefile; compile-command: "make ARCH=68K_ONLY MEMDEBUG=TRUE"; -*-
|
|
# Copyright 2002 by Eric House (xwords@eehouse.org). All rights reserved.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
PLATFORM=obj_palm
|
|
|
|
ifeq ($(MEMDEBUG),TRUE)
|
|
PLATFORM := $(PLATFORM)_memdebug
|
|
CFLAGS += -DMEM_DEBUG -DDEBUG -g -O0
|
|
CSFLAGS += -O0 -g
|
|
NAME = "CrossDbg"
|
|
ICONTEXT = "CrossDbg"
|
|
APPID ?= Xwdb
|
|
else
|
|
PLATFORM := $(PLATFORM)_rel
|
|
CFLAGS += -O2 -fomit-frame-pointer
|
|
# The -Os flag breaks multilink, at least as I'm using it
|
|
CSFLAGS += -OS -fomit-frame-pointer
|
|
NAME = "Crosswords"
|
|
ICONTEXT = "Crosswords"
|
|
APPID ?= Xwr4
|
|
endif
|
|
|
|
LANG=en_US
|
|
ROOTNAME = $(NAME)
|
|
BITMAPS = ./bmps
|
|
TYPE = appl
|
|
MLPREFIX = /usr
|
|
DICT = $(shell echo $$BASENG_PATH)
|
|
|
|
ARCH ?= ARM_ONLY
|
|
|
|
ifeq ($(ARCH),ARM_ONLY)
|
|
PLATFORM := $(PLATFORM)_armonly
|
|
BUILD_AS_PNOLET = 1
|
|
TARGET=$(PLATFORM)/xw4_ARM.prc
|
|
else
|
|
ifeq ($(ARCH),68K_ONLY)
|
|
PLATFORM := $(PLATFORM)_68konly
|
|
TARGET=$(PLATFORM)/xw4_68K.prc
|
|
else
|
|
ifeq ($(ARCH),SONY)
|
|
# No highres in sony build case
|
|
PLATFORM := $(PLATFORM)_sony
|
|
BUILD_AS_PNOLET = 1
|
|
FEATURE_PNOAND68K = -DFEATURE_PNOAND68K
|
|
TARGET=$(PLATFORM)/xw4_SONY.prc
|
|
else
|
|
ifeq ($(ARCH),COMBINED)
|
|
PLATFORM := $(PLATFORM)_combined
|
|
BUILD_AS_PNOLET = 1
|
|
FEATURE_PNOAND68K = -DFEATURE_PNOAND68K
|
|
TARGET=$(PLATFORM)/xwords4.prc
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
APPNAME = "$(NAME)"
|
|
|
|
PALM_TOOLS_PREFIX = $(shell echo $$PALM_TOOLS_PREFIX)
|
|
|
|
ifeq (x$(PALM_TOOLS_PREFIX)x, xx)
|
|
PALM_TOOLS_PREFIX = m68k-palmos-
|
|
endif
|
|
#PALM_TOOLS_PREFIX=m68k-palmos-coff-
|
|
|
|
CC = $(PALM_TOOLS_PREFIX)gcc
|
|
AR = $(PALM_TOOLS_PREFIX)ar
|
|
MULTILINK = $(PALM_TOOLS_PREFIX)multilink
|
|
###############################################################################
|
|
# par is a utility for manipulating .prc and .pdb files. See
|
|
# http://djw.org/product/palm/par/index.html to download source.
|
|
###############################################################################
|
|
PAR = par
|
|
PILRC = pilrc
|
|
BUILD-PRC = build-prc
|
|
OBJ-RES = m68k-palmos-obj-res
|
|
|
|
MULTILINK_OPTIONS = -basename $(ROOTNAME) -segmentsize 27k -g \
|
|
-deadstrip -verbose -gdb-script app.gdb
|
|
|
|
ifneq (x$(OWNERNAME)x,xx)
|
|
HASHDEF = -DOWNER_HASH=$$(./namehash $(OWNERNAME))
|
|
endif
|
|
|
|
MYDEFS_COMMON = $(PASSTHRU) -DXW_FEATURE_UTILS -DPOINTER_SUPPORT \
|
|
-DKEY_SUPPORT -DOVERRIDE_EDGE_FOR_INDEX -DCOLOR_SUPPORT \
|
|
-DSHOW_PROGRESS $(HASHDEF) -DNO_REG_REQUIRED
|
|
|
|
# turn on letting users pick tiles "face-up"
|
|
MYDEFS_COMMON += -DFEATURE_TRAY_EDIT
|
|
|
|
# turn on limits to searches on board and in tray (number of tiles to
|
|
# use)
|
|
MYDEFS_COMMON += -DXWFEATURE_SEARCHLIMIT
|
|
|
|
#MYDEFS_COMMON += -DXWFEATURE_HINT_CONFIG
|
|
|
|
# Turn on network play over IP via cellular modem. Very much
|
|
# experimental at this point!
|
|
# MYDEFS_COMMON += -DBEYOND_IR
|
|
|
|
# turn on bluetooth comms option -- off by default until ready
|
|
# MYDEFS_COMMON += -DXWFEATURE_PALM_BLUETOOTH
|
|
|
|
# For Danish and perhaps other languages, custom-measure glyph height
|
|
# so that overtall letters have a chance of fitting.
|
|
MYDEFS_COMMON += -DTALL_FONTS
|
|
|
|
# Turn on ability to handle 4-byte-node DAWG files. These are of type
|
|
# Xwr4, not Xwr3 like the old ones. Currently this option means the
|
|
# binary won't be able to read or even find the old dictionaries.
|
|
# Don't release with this on until there's a UI decision and code on
|
|
# how to help users transition.
|
|
MYDEFS_COMMON += -DNODE_CAN_4
|
|
|
|
MYDEFS_COMMON += -DSVN_REV=\"$(shell svnversion -n .)\"
|
|
|
|
ifdef XWFEATURE_STANDALONE_ONLY
|
|
MYDEFS_COMMON += -DXWFEATURE_STANDALONE_ONLY
|
|
else
|
|
MYDEFS_COMMON += -DIR_SUPPORT -DIR_EXCHMGR
|
|
endif
|
|
|
|
MYDEFS_ARM = -D__LITTLE_ENDIAN -DXW_TARGET_PNO $(MYDEFS_COMMON)
|
|
MYDEFS_68K = -DPLATFORM_PALM -D__BIG_ENDIAN $(MYDEFS_COMMON) -DAPPNAME=\"$(APPNAME)\"
|
|
|
|
BITMAP_RSRCS = \
|
|
$(BITMAPS)/rightarrow.pbitm \
|
|
$(BITMAPS)/downarrow.pbitm \
|
|
$(BITMAPS)/flipbutton.pbitm \
|
|
$(BITMAPS)/valuebutton.pbitm \
|
|
$(BITMAPS)/lightbulb.pbitm \
|
|
$(BITMAPS)/traybuttons.pbitm \
|
|
$(BITMAPS)/showtray.pbitm \
|
|
$(BITMAPS)/xwords4.pbitm \
|
|
|
|
# INCLUDES += -I/usr/local/share/palmdev/sdk-5r3/Extensions/ExpansionMgr
|
|
INCLUDES += -I/usr/local/share/palmdev/sdk-5r3/include/Extensions/Bluetooth
|
|
|
|
# HS_DUO_SUPPORT = 1
|
|
|
|
ifneq (x$(HS_DUO_SUPPORT)x, xx)
|
|
INCLUDES += -I/usr/local/share/palmdev/duoIncs
|
|
INCLUDES += -I/usr/local/share/palmdev/duoIncs/68K
|
|
INCLUDES += -I/usr/local/share/palmdev/duoIncs/68K/System
|
|
INCLUDES += -I/usr/local/share/palmdev/duoIncs/Common/System
|
|
|
|
MYDEFS_68K += -DHS_DUO_SUPPORT
|
|
MYDEFS_ARM += -DHS_DUO_SUPPORT
|
|
|
|
FNAVS = ./fnav03e9.bin
|
|
endif
|
|
|
|
INCLUDES += -I/usr/local/share/palmdev/sdk-5r3/include/SonyIncs
|
|
INCLUDES += -I/usr/local/share/palmdev/sdk-5r3/include/SonyIncs/System
|
|
INCLUDES += -I/usr/local/share/palmdev/sdk-5r3/include/SonyIncs/Libraries
|
|
MYDEFS_68K += -DCPU_TYPE=CPU_68K
|
|
|
|
include ../common/config.mk
|
|
|
|
OBJS_68K = $(PLATFORM)/palmmain.o \
|
|
$(PLATFORM)/palmsavg.o \
|
|
$(PLATFORM)/gameutil.o \
|
|
$(PLATFORM)/newgame.o \
|
|
$(PLATFORM)/palmdict.o \
|
|
$(PLATFORM)/palmdraw.o \
|
|
$(PLATFORM)/palmutil.o \
|
|
$(PLATFORM)/dictui.o \
|
|
$(PLATFORM)/dictlist.o \
|
|
$(PLATFORM)/palmir.o \
|
|
$(PLATFORM)/palmip.o \
|
|
$(PLATFORM)/palmbt.o \
|
|
$(PLATFORM)/prefsdlg.o \
|
|
$(PLATFORM)/connsdlg.o \
|
|
$(COMMONOBJ)
|
|
|
|
# if BUILD_AS_PNOLET is defined and FEATURE_PNOAND68K isn't, exclude
|
|
# all but enter68k.o from the 68K part of the binary (code resources).
|
|
ifdef BUILD_AS_PNOLET
|
|
OBJS = $(PLATFORM)/enter68k.o
|
|
PNOLET = pnolet
|
|
endif
|
|
ifndef BUILD_AS_PNOLET
|
|
OBJS += $(OBJS_68K)
|
|
else
|
|
ifdef FEATURE_PNOAND68K
|
|
OBJS += $(OBJS_68K)
|
|
endif
|
|
endif
|
|
|
|
MYDEFS_68K += $(FEATURE_PNOAND68K)
|
|
MYDEFS_ARM += $(FEATURE_PNOAND68K)
|
|
|
|
include ../common/rules.mk
|
|
|
|
CSFLAGS += -S -Wall -DAPPID=\'$(APPID)\' $(MYDEFS_68K) $(INCLUDES)
|
|
CFLAGS += -Wall -DAPPID=\'$(APPID)\' $(MYDEFS_68K) $(INCLUDES)
|
|
# In the non-debug mode (for which DONT_OMIT is undefined) build without
|
|
# the frame pointer.
|
|
|
|
$(TARGET): $(PLATFORM)/objs.prc $(PLATFORM)/res.prc
|
|
$(PAR) -c -a 'resource|backup' -v 4 $@ $(NAME) $(TYPE) $(APPID) $^
|
|
ifdef XW_UPLOAD_CMD
|
|
zip $(TARGET).zip $(TARGET)
|
|
$(XW_UPLOAD_CMD) $(TARGET)
|
|
$(XW_UPLOAD_CMD) $(TARGET).zip
|
|
endif
|
|
|
|
solo:
|
|
$(MAKE) XWFEATURE_STANDALONE_ONLY=1
|
|
|
|
gremlins:
|
|
$(MAKE) PASSTHRU="-DDEBUG -DMEM_DEBUG -DFOR_GREMLINS" DONT_OMIT=true
|
|
|
|
#
|
|
REL=405
|
|
REL_PATH=public_html/xwords/4.0.5
|
|
ship-all:
|
|
make clean; make; \
|
|
make; (cd xwconfig && make); \
|
|
for l in fr_FR en_US es_ES es_CT sv_SE de_DE ; do \
|
|
make clean; \
|
|
make LANG=$$l; \
|
|
zip -j xw$(REL)_$$l.zip xwconfig/xwconfig.prc $(TARGET); \
|
|
done
|
|
|
|
.S.o:
|
|
$(CC) $(TARGETFLAGS) -c $<
|
|
|
|
.c.s:
|
|
$(CC) $(CSFLAGS) $<
|
|
|
|
$(BITMAPS)/%.pbitm: $(BITMAPS)/%.bmp
|
|
bmtoa $< > $@
|
|
|
|
$(PLATFORM)/objs.prc: LocalizedStrIncludes.h $(OBJS) gdbload
|
|
@rm -f *.grc *.bin
|
|
ifeq ($(ARCH),ARM_ONLY)
|
|
$(CC) $(OBJS) -o tmp.o
|
|
$(OBJ-RES) tmp.o
|
|
rm -f tmp.o
|
|
else
|
|
$(MULTILINK) $(MULTILINK_OPTIONS) $(OBJS)
|
|
endif
|
|
$(PAR) -c -a resource $(PLATFORM)/objs.prc Code rsrc rsrc *.grc
|
|
@rm -f *.grc *.bin
|
|
|
|
|
|
$(PLATFORM)/res.prc: xwords4.rcp $(HEADERS) StrL03e8.bin $(FNAVS) $(PNOLET)
|
|
$(PILRC) $< >/dev/null
|
|
$(PAR) -c -a 'resource' $@ Rsrc rsrc rsrc *.bin
|
|
rm -f $< *.bin
|
|
|
|
xwords4.rcp: l10n/xwords4_$(LANG).rcp.pre xwords4defines.h $(BITMAP_RSRCS)
|
|
gcc -x c -E -P $(INCLUDES) $(MYDEFS_68K) \
|
|
-DICONTEXT=\"$(ICONTEXT)\" $< > $@
|
|
|
|
LocalizedStrIncludes.h StrL03e8.bin: ./l10n/StrRes_$(LANG).pre ./l10n/mkstrsres.c
|
|
gcc $(CFLAGS) $(FORMATDEFINES) \
|
|
-DLANGSTRFILE=\"$<\" ./l10n/mkstrsres.c \
|
|
-o mkstrsres
|
|
./mkstrsres StrL03e8.bin LocalizedStrIncludes.h
|
|
rm -f mkstrsres
|
|
|
|
namehash: namehash.c ownerhash.h
|
|
fnavgen: fnavgen.c
|
|
gcc $< -o $@
|
|
|
|
$(FNAVS): ./fnavgen
|
|
./$<
|
|
|
|
ifneq (x$(BUILD_AS_PNOLET)x, xx)
|
|
.PHONY : pnolet
|
|
|
|
pnolet: LocalizedStrIncludes.h
|
|
$(MAKE) -f Makefile.PNO MEMDEBUG=$(MEMDEBUG) MYDEFS="$(MYDEFS_ARM) -DAPPID=\'$(APPID)\' \
|
|
-DAPPNAME=\\\"$(APPNAME)\\\""
|
|
endif
|
|
|
|
# GDB seems confused by relative paths these days. So generate the
|
|
# file rather than trying to keep in in cvs.
|
|
gdbload:
|
|
echo "source app.gdb" > $@
|
|
echo "load-segments" >> $@
|
|
echo "dir $(shell pwd)" >> $@
|
|
echo "dir $(shell pwd)/../common" >> $@
|
|
|
|
clean:
|
|
cd ../common && $(MAKE) PLATFORM=$(PLATFORM) $@
|
|
rm -rf $(PLATFORM)/*.[oa] xwords4 *.bin *.stamp *.[pg]rc \
|
|
xwords4.rcp *.btxt $(PLATFORM)/* LocalizedStrIncludes.h gdbload
|
|
ifneq (x$(BUILD_AS_PNOLET)x, xx)
|
|
$(MAKE) -f Makefile.PNO clean
|
|
endif
|
|
|
|
#cmod03E8.bin: palmdraw.c Makefile
|
|
# $(CC) -O2 -nostartfiles $(INCLUDES) $(MYDEFS) -o tmp $<
|
|
# $(OBJRES) tmp
|
|
# mv code0001.tmp.grc $@ ; rm *.tmp.grc
|
|
|
|
help:
|
|
@echo "make [ARCH=(ARM_ONLY|68K_ONLY|SONY|COMBINED)] [MEMDEBUG=TRUE] [LANG=fr_FR|en_US|es_ES|es_CT|sv_SE|de_DE] [clean]"
|
|
@echo OR
|
|
@echo "make ship-all"
|
|
@echo OR
|
|
@echo "make gremlins"
|