# # Makefile for NetSurf RISC OS target # # This file is part of NetSurf # ---------------------------------------------------------------------------- # RISC OS target setup # ---------------------------------------------------------------------------- $(eval $(call pkg_config_find_and_add,libcares,Cares)) $(eval $(call feature_enabled,DRAW,-DWITH_DRAW,,Drawfile rendering)) $(eval $(call feature_enabled,SPRITE,-DWITH_SPRITE,,Sprite rendering)) $(eval $(call feature_enabled,ARTWORKS,-DWITH_ARTWORKS,,ArtWorks rendering)) $(eval $(call feature_enabled,DRAW_EXPORT,-DWITH_DRAW_EXPORT,-lpencil,Drawfile export)) TPD_RISCOS = $(foreach TPL,$(notdir $(TPL_RISCOS)), \ $(FRONTEND_SOURCE_DIR)/appdir/Resources/$(TPL)/Templates$(TPLEXT)) RESOURCES = $(TPD_RISCOS) CFLAGS += -Driscos -std=c99 -D_BSD_SOURCE -D_POSIX_C_SOURCE \ -mpoke-function-name -fno-strict-aliasing CFLAGS += -I$(GCCSDK_INSTALL_ENV)/include ifeq ($(HOST),riscos) CFLAGS += -I -mthrowback endif ASFLAGS += -xassembler-with-cpp -I. -I$(GCCSDK_INSTALL_ENV)/include LDFLAGS += -L$(GCCSDK_INSTALL_ENV)/lib -lrufl ifeq ($(HOST),riscos) LDFLAGS += -LOSLib: -lOSLib32 else LDFLAGS += -lOSLib32 ifeq ($(SUBTARGET),-elf) # Go for static builds & AIF binary at the moment: CFLAGS += -static LDFLAGS += -static EXEEXT := ,ff8 endif endif # ---------------------------------------------------------------------------- # Source file setup # ---------------------------------------------------------------------------- # S_RISCOS are sources purely for the RISC OS build S_FRONTEND := 401login.c assert.c bitmap.c buffer.c configure.c gui.c \ dialog.c download.c filetype.c font.c help.c image.c \ iconbar.c menus.c message.c mouse.c palettes.c plotters.c \ print.c query.c save.c save_draw.c save_pdf.c schedule.c \ search.c searchweb.c textarea.c textselection.c theme.c \ theme_install.c toolbar.c url_suggest.c wimp.c wimp_event.c \ ucstables.c uri.c url_complete.c url_protocol.c window.c \ corewindow.c cookies.c sslcert.c hotlist.c \ local_history.c global_history.c \ $(addprefix content-handlers/,artworks.c awrender.s draw.c \ sprite.c) \ $(addprefix gui/,button_bar.c progress_bar.c status_bar.c \ throbber.c url_bar.c) \ $(addprefix configure/,con_cache.c con_connect.c con_content.c \ con_fonts.c con_home.c con_image.c con_inter.c con_language.c \ con_secure.c con_theme.c) # This is the final source build list # Note this is deliberately *not* expanded here as common and image # are not yet available SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_FRONTEND) EXETARGET := $(FRONTEND_SOURCE_DIR)/appdir/!RunImage$(EXEEXT) # The filter and target for split messages MESSAGES_FILTER=ro $(FRONTEND_SOURCE_DIR)/appdir/!Run$(RUNEXT): $(FRONTEND_SOURCE_DIR)/scripts/Run $(EXETARGET) $(VQ)echo " MAKERUN: $@" $(Q)$(MAKERUN) $(EXETARGET) $< $@ $(FRONTEND_SOURCE_DIR)/appdir/!Help$(RUNEXT): $(FRONTEND_SOURCE_DIR)/scripts/Help $(VQ)echo " CP: $@" $(Q)cp $< $@ $(DEPROOT)/squeeze.d: $(EXETARGET) $(VQ)echo " SQUEEZE: $<" $(Q)$(SQUEEZE) -f -v $(EXETARGET) $(Q)$(TOUCH) $@ POSTEXES += $(FRONTEND_SOURCE_DIR)/appdir/!Run$(RUNEXT) $(FRONTEND_SOURCE_DIR)/appdir/!Help$(RUNEXT) $(DEPROOT)/squeeze.d clean-run: $(VQ)echo " CLEAN: !Run$(RUNEXT)" $(Q) $(RM) $(FRONTEND_SOURCE_DIR)/appdir/!Run$(RUNEXT) clean-help: $(VQ)echo " CLEAN: !Help$(RUNEXT)" $(Q) $(RM) $(FRONTEND_SOURCE_DIR)/appdir/!Help$(RUNEXT) CLEANS += clean-run clean-help # ---------------------------------------------------------------------------- # Template targets # ---------------------------------------------------------------------------- # Template objects TPL_RISCOS := de en fr nl # TODO: It'd be nice to auto-detect these TPL_RISCOS := $(addprefix $(FRONTEND_SOURCE_DIR)/templates/,$(TPL_RISCOS)) # Template target creation macro define compile_template $(FRONTEND_SOURCE_DIR)/appdir/Resources/$(1)/Templates$$(TPLEXT): $(2) $$(VQ)echo "TEMPLATE: $(2)" $$(Q)$$(MKDIR) -p $(FRONTEND_SOURCE_DIR)/appdir/Resources/$(1) $$(Q)$$(CC) -x c -E -P $$(CFLAGS) $(2) | $$(CCRES) - $$@ CLEAN_TEMPLATES += $(FRONTEND_SOURCE_DIR)/appdir/Resources/$(1)/Templates$$(TPLEXT) endef $(eval $(foreach TPL,$(TPL_RISCOS), \ $(call compile_template,$(notdir $(TPL)),$(TPL)))) clean-templates: $(VQ)echo " CLEAN: $(CLEAN_TEMPLATES)" $(Q)$(RM) $(CLEAN_TEMPLATES) CLEANS += clean-templates # ---------------------------------------------------------------------------- # Install target # ---------------------------------------------------------------------------- install-riscos: # ---------------------------------------------------------------------------- # Package target # ---------------------------------------------------------------------------- package-riscos: netsurf.zip netsurf.zip: $(EXETARGET) $(eval $@_TMPDIR := $(shell mktemp -d)) $(Q) $(RM) $@ $(Q) cp -rLvp $(FRONTEND_SOURCE_DIR)/appdir $($@_TMPDIR)/!NetSurf $(Q) $(CURDIR)/utils/git-date.sh $(FRONTEND_SOURCE_DIR)/distribution $(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/!Boot $($@_TMPDIR) $(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/!System $($@_TMPDIR) $(Q) rsync --archive --verbose $(FRONTEND_SOURCE_DIR)/distribution/3rdParty $($@_TMPDIR) $(Q) cp $(FRONTEND_SOURCE_DIR)/distribution/ReadMe $($@_TMPDIR) $(Q) cp $(FRONTEND_SOURCE_DIR)/distribution/LeesMij $($@_TMPDIR) $(Q) cd $($@_TMPDIR) && /opt/netsurf/arm-unknown-riscos/env/bin/zip -9vr\, $(CURDIR)/$@ * $(Q) $(RM) -rf $($@_TMPDIR)