1# ----------------------------------------------------------------------------
2# Atari target setup
3# ----------------------------------------------------------------------------
4
5# !!!IMPORTANT!!!
6# On regular m68k-atari-mint installation, these must be set
7# manually via env. variables, because the m68k-atari-mint
8# toolchain is located in /usr/bin and the wildcard matching
9# fails then. So this wildcard matches only works for
10# the netsurf environment!
11STRIP := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*-strip)
12STACK := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*stack)
13FT2CF := $(GCCSDK_INSTALL_ENV)/bin/freetype-config
14
15ifeq ($(ATARIARCH),68000)
16PRGSUFFIX := 000.app
17PKGNAME := ns000.zip
18endif
19
20ifeq ($(ATARIARCH),68020-60)
21CFLAGS += -m68020-60
22LDFLAGS += -m68020-60
23PRGSUFFIX := 020.app
24PKGNAME := ns020.zip
25endif
26
27ifeq ($(ATARIARCH),v4e)
28CFLAGS += -mcpu=5475
29LDFLAGS += -mcpu=5475
30PRGSUFFIX := v4e.app
31PKGNAME := nsv4e.zip
32endif
33
34# non-pkgconfig components
35
36SPIDERMONKEY_CFLAGS := -DXP_UNIX -DJS_HAS_FILE_OBJECT=0 -DJSOPTION_JIT=0 -DPOSIX_SOURCE -D_BSD_SOURCE
37
38# freetype is optional but older versions do not use pkg-config
39ifeq ($(NETSURF_USE_ATARI_FREETYPE_FONT),YES)
40  NETSURF_USE_FREETYPE2 := AUTO
41  NETSURF_FEATURE_FREETYPE2_CFLAGS := -DWITH_FREETYPE_FONT_DRIVER
42
43  $(eval $(call pkg_config_find_and_add_enabled,FREETYPE2,freetype2,freetype2))
44
45  # try and use non pkg-config method
46  ifeq ($(NETSURF_USE_FREETYPE2),NO)
47    FREETYPE_CONFIG_EXISTS := $(shell $(FT2CF) --cflags >/dev/null && echo yes)
48    ifeq ($(FREETYPE_CONFIG_EXISTS),yes)
49      NETSURF_USE_FREETYPE2 := YES
50      CFLAGS += $(shell $(FT2CF) --cflags) $(NETSURF_FEATURE_FREETYPE2_CFLAGS)
51      LDFLAGS += $(shell $(FT2CF) --libs)
52      $(info FT2.CNFG: freetype2 (freetype2)	enabled)
53    else
54      $(info FT2.CNFG: freetype2 (freetype2)	failed)
55      $(error Unable to find library for: freetype2)
56    endif
57  endif
58endif
59
60
61$(eval $(call feature_enabled,ATARI_NETSURF_FONT,-DWITH_INTERNAL_FONT_DRIVER,,(Internal Font)))
62$(eval $(call feature_enabled,ATARI_VDI_FONT,-DWITH_VDI_FONT_DRIVER,,(VDI Font)))
63$(eval $(call feature_enabled,ATARI_8BPP_SUPPORT,-DWITH_8BPP_SUPPORT,,(Indexed screen format support)))
64
65$(eval $(call pkg_config_find_and_add,libcares,Cares))
66
67CFLAGS += -U__STRICT_ANSI__ -std=c99 -Dsmall -Dnsatari \
68		-D_BSD_SOURCE \
69		-D_XOPEN_SOURCE=600 \
70		-D_POSIX_C_SOURCE=200112L \
71		-DNSLOG_LEVEL_0x0010=NSLOG_LEVEL_INFO \
72		$(shell $(PKG_CONFIG) --cflags openssl ) \
73		$(shell $(PKG_CONFIG) --cflags libcurl )
74
75LDFLAGS += -lcflib -lcurl
76LDFLAGS += -lssl -lcrypto
77LDFLAGS += -lz -lHermes -lgem -lm
78LDFLAGS += -L$(GCCSDK_INSTALL_ENV)/lib
79
80
81# sources purely for the Atari FreeMiNT build
82S_FRONTEND := \
83	about.c \
84	bitmap.c \
85	clipboard.c \
86	ctxmenu.c \
87	cookies.c \
88	deskmenu.c \
89	download.c \
90	encoding.c \
91	file.c \
92	findfile.c \
93	filetype.c \
94	font.c \
95	gui.c \
96	hotlist.c \
97	history.c \
98	misc.c \
99	osspec.c \
100	redrawslots.c \
101	rootwin.c \
102	schedule.c \
103	search.c \
104	statusbar.c \
105	settings.c \
106	toolbar.c \
107	treeview.c \
108	plot/plot.c \
109	plot/fontplot.c \
110	plot/eddi.s \
111	plot/font_freetype.c \
112	plot/font_internal.c \
113	plot/font_vdi.c \
114	gemtk/aestabs.c \
115	gemtk/dragdrop.c \
116	gemtk/guiwin.c \
117	gemtk/msgbox.c \
118	gemtk/utils.c \
119	gemtk/objc.c
120
121
122# This is the final source build list
123# Note this is deliberately *not* expanded here as common and image
124#   are not yet available
125SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_FRONTEND)
126EXETARGET := ns$(SUBTARGET)$(PRGSUFFIX)
127
128# ----------------------------------------------------------------------------
129# Install target
130# ----------------------------------------------------------------------------
131
132ATARI_TARGET_DIR := netsurf/
133ATARI_RES_DIR := $(FRONTEND_RESOURCES_DIR)/
134ATARI_DOC_DIR := $(FRONTEND_SOURCE_DIR)/doc/
135ATARI_FONT_NAME := ttf-bitstream-vera-1.10
136ATARI_FONT_SOURCE_URL := http://ftp.gnome.org/pub/GNOME/sources/ttf-bitstream-vera/1.10/$(ATARI_FONT_NAME).tar.gz
137#ATARI_FONT_SOURCE_URL := http://localhost/$(ATARI_FONT_NAME).tar.gz
138ATARI_FONT_TMP_DIR := $(DEPROOT)/../
139ATARI_FONT_SOURCE_DIR := $(ATARI_FONT_TMP_DIR)$(ATARI_FONT_NAME)/
140ATARI_GENERIC_RESOURCES := de en it ja nl
141ATARI_RESOURCES := $(addprefix resources/,$(ATARI_GENERIC_RESOURCES))
142
143# ----------------------------------------------------------------------------
144# Install target
145# ----------------------------------------------------------------------------
146
147install-atari:
148
149# ----------------------------------------------------------------------------
150# Package target
151# ----------------------------------------------------------------------------
152
153$(ATARI_FONT_TMP_DIR)$(ATARI_FONT_NAME):
154	$(Q)wget $(ATARI_FONT_SOURCE_URL) -O $(ATARI_FONT_TMP_DIR)$(ATARI_FONT_NAME).tar.gz
155	tar xfz $(ATARI_FONT_TMP_DIR)/$(ATARI_FONT_NAME).tar.gz -C $(ATARI_FONT_TMP_DIR)
156
157package-atari: $(ATARI_FONT_TMP_DIR)$(ATARI_FONT_NAME) $(PKGNAME)
158	$(VQ)echo Creating $(PKGNAME)
159
160$(PKGNAME): $(EXETARGET)
161ifneq ($(strip $(STRIP)),)
162	$(Q)echo Stripping symbols from $(EXETARGET) with $(STRIP)
163	$(Q)$(STRIP) $(EXETARGET)
164endif
165ifneq ($(strip $(STACK)),)
166	$(Q)$(STACK) -S 256k $(EXETARGET)
167endif
168	$(Q)rm -rf $(ATARI_TARGET_DIR)
169	$(Q)rm -rf $(PKGNAME)
170	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)
171	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)doc
172	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)downloads
173	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)res
174	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)res/fonts
175	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)res/icons
176	$(Q)$(MKDIR) $(ATARI_TARGET_DIR)res/cache
177	$(Q)touch $(ATARI_TARGET_DIR)cookies
178	$(Q)touch $(ATARI_TARGET_DIR)url.db
179
180	$(Q)cp $(ATARI_DOC_DIR)bugs $(ATARI_TARGET_DIR)doc/
181	$(Q)cp $(ATARI_DOC_DIR)faq.txt $(ATARI_TARGET_DIR)doc/
182	$(Q)cp $(ATARI_DOC_DIR)readme.txt $(ATARI_TARGET_DIR)doc/
183	$(Q)cp $(ATARI_DOC_DIR)todo.txt $(ATARI_TARGET_DIR)doc/
184
185# GUI resources:
186	$(Q)cp -r $(ATARI_RESOURCES)  $(ATARI_TARGET_DIR)res/
187	$(Q)cp $(ATARI_RES_DIR)/netsurf.rsc  $(ATARI_TARGET_DIR)res/netsurf.rsc
188	$(Q)cp $(ATARI_RES_DIR)/languages  $(ATARI_TARGET_DIR)res/languages
189	$(Q)cp $(ATARI_RES_DIR)/icons/toolbar -R $(ATARI_TARGET_DIR)res/icons
190	$(Q)cp resources/icons/* -R $(ATARI_TARGET_DIR)res/icons/
191
192	$(Q)cp resources/netsurf.png $(ATARI_TARGET_DIR)res/netsurf.png
193	$(Q)cp resources/adblock.css $(ATARI_TARGET_DIR)res/adblock.css
194	$(Q)cp resources/default.css $(ATARI_TARGET_DIR)res/default.css
195	$(Q)cp resources/quirks.css $(ATARI_TARGET_DIR)res/quirks.css
196	$(Q)cp resources/internal.css $(ATARI_TARGET_DIR)res/internal.css
197	$(Q)cp resources/SearchEngines $(ATARI_TARGET_DIR)res/search
198	$(Q)cp resources/ca-bundle $(ATARI_TARGET_DIR)res/cabundle
199	$(Q)$(RM) $(ATARI_TARGET_DIR)res/messages
200	$(Q)$(SPLIT_MESSAGES) -l en -p atari -f messages -o $(ATARI_TARGET_DIR)res/messages resources/FatMessages
201	$(Q)cp resources/en/welcome.html $(ATARI_TARGET_DIR)res/welcome.html
202	$(Q)cp resources/en/licence.html $(ATARI_TARGET_DIR)res/licence.html
203	$(Q)cp resources/en/credits.html $(ATARI_TARGET_DIR)res/credits.html
204
205# copy "Bitstream Vera" font:
206	$(Q)cp $(ATARI_FONT_SOURCE_DIR)RELEASENOTES.TXT $(ATARI_TARGET_DIR)res/fonts/
207	$(Q)cp $(ATARI_FONT_SOURCE_DIR)README.TXT $(ATARI_TARGET_DIR)res/fonts/
208	$(Q)cp $(ATARI_FONT_SOURCE_DIR)COPYRIGHT.TXT $(ATARI_TARGET_DIR)res/fonts/
209
210	$(Q)cp $(ATARI_FONT_SOURCE_DIR)Vera.ttf $(ATARI_TARGET_DIR)res/fonts/ss.ttf
211	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraBd.ttf $(ATARI_TARGET_DIR)res/fonts/ssb.ttf
212	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraIt.ttf $(ATARI_TARGET_DIR)res/fonts/ssi.ttf
213	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraBI.ttf $(ATARI_TARGET_DIR)res/fonts/ssib.ttf
214	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraSe.ttf $(ATARI_TARGET_DIR)res/fonts/s.ttf
215	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraSeBd.ttf $(ATARI_TARGET_DIR)res/fonts/sb.ttf
216	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraMono.ttf $(ATARI_TARGET_DIR)res/fonts/mono.ttf
217	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraMoBd.ttf $(ATARI_TARGET_DIR)res/fonts/monob.ttf
218	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraMoIt.ttf $(ATARI_TARGET_DIR)res/fonts/cursive.ttf
219	$(Q)cp $(ATARI_FONT_SOURCE_DIR)VeraMoBI.ttf $(ATARI_TARGET_DIR)res/fonts/fantasy.ttf
220
221	$(Q)cp $(EXETARGET) $(ATARI_TARGET_DIR)$(EXETARGET)
222
223# zip files
224	$(Q)zip $(PKGNAME) -9 -r ./$(ATARI_TARGET_DIR)
225
226# delete temporary folders
227	$(Q)rm -rf $(ATARI_TARGET_DIR)
228