From 6fed24e8948c1acaaeae002b9ee7ee44a7e2e0a5 Mon Sep 17 00:00:00 2001 From: Ashish Gupta Date: Thu, 13 Apr 2017 23:36:26 +0200 Subject: Step 2 : Abuse _TARGET_IS_KOLIBRIOS and build with make TARGET=kolibrios --- Makefile | 90 ++++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 62 insertions(+), 28 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 0c2933bf8..21edda463 100644 --- a/Makefile +++ b/Makefile @@ -109,7 +109,7 @@ ifeq ($(TARGET),) endif # valid values for the TARGET -VLDTARGET := riscos gtk gtk3 beos amiga amigaos3 framebuffer windows atari monkey +VLDTARGET := riscos gtk gtk3 beos amiga amigaos3 framebuffer windows atari monkey kolibrios # Check for valid TARGET ifeq ($(filter $(VLDTARGET),$(TARGET)),) @@ -287,7 +287,12 @@ else CC := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*gcc) CXX := $(wildcard $(GCCSDK_INSTALL_CROSSBIN)/*g++) endif - + else + ifeq ($(TARGET),kolibrios) + CC := kos32-gcc + LD := kos32-ld + PKG_CONFIG := pkg-config + PREFIX := /opt/netsurf else # All native targets @@ -312,6 +317,7 @@ else endif endif endif + endif endif endif endif @@ -509,19 +515,34 @@ CWARNFLAGS := -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs include Makefile.defaults # libraries enabled by feature switch without pkgconfig file -$(eval $(call feature_switch,JPEG,JPEG (libjpeg),-DWITH_JPEG,-ljpeg,-UWITH_JPEG,)) -$(eval $(call feature_switch,HARU_PDF,PDF export (haru),-DWITH_PDF_EXPORT,-lhpdf -lpng,-UWITH_PDF_EXPORT,)) -$(eval $(call feature_switch,LIBICONV_PLUG,glibc internal iconv,-DLIBICONV_PLUG,,-ULIBICONV_PLUG,-liconv)) -$(eval $(call feature_switch,DUKTAPE,Javascript (Duktape),,,,,)) # Common libraries with pkgconfig -$(eval $(call pkg_config_find_and_add,libcss,CSS)) -$(eval $(call pkg_config_find_and_add,libdom,DOM)) -$(eval $(call pkg_config_find_and_add,libnsutils,nsutils)) -$(eval $(call pkg_config_find_and_add,libutf8proc,utf8proc)) +ifneq ($(TARGET),kolibrios) + $(eval $(call feature_switch,JPEG,JPEG (libjpeg),-DWITH_JPEG,-ljpeg,-UWITH_JPEG,)) + $(eval $(call feature_switch,HARU_PDF,PDF export (haru),-DWITH_PDF_EXPORT,-lhpdf -lpng,-UWITH_PDF_EXPORT,)) + $(eval $(call feature_switch,LIBICONV_PLUG,glibc internal iconv,-DLIBICONV_PLUG,,-ULIBICONV_PLUG,-liconv)) + $(eval $(call feature_switch,DUKTAPE,Javascript (Duktape),,,,,)) + $(eval $(call pkg_config_find_and_add,libcss,CSS)) + $(eval $(call pkg_config_find_and_add,libdom,DOM)) + $(eval $(call pkg_config_find_and_add,libnsutils,nsutils)) + $(eval $(call pkg_config_find_and_add,libutf8proc,utf8proc)) +else + KOL_LIBC := $(HOME)/kolibrios/contrib/sdk/sources/newlib/libc/include/ + KOL_LIB_DIR := $(HOME)/kolibrios/contrib/sdk/lib + LIB_LDFLAGS := -L$(KOL_LIB_DIR) -lfreetype + OS_LDFLAGS := -static -Tapp-static.lds + + NS_INCLUDE := $(PREFIX)/include + NS_LIB_LDFLAGS := -L$(PREFIX)/lib/ -lnsbmp -lnsutils -lwapcaplet -lsvgtiny -lnsgif -lutf8proc -lcss -lnsfb -lparserutils -ldom -lhubbub -lz + + CFLAGS += -c -fno-ident -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U__BSD_VISIBLE -I$(KOL_LIBC) -I$(NS_INCLUDE) + LDFLAGS += $(OS_LDFLAGS) $(NS_LIB_LDFLAGS) $(LIB_LDFLAGS) -lc -lgcc -lc.dll +endif # Common libraries without pkg-config support -LDFLAGS += -lz +ifneq ($(TARGET),kolibrios) + LDFLAGS += -lz +endif # Optional libraries with pkgconfig @@ -540,20 +561,22 @@ NETSURF_FEATURE_NSPSL_CFLAGS := -DWITH_NSPSL # resolved by the subsequent openssl # freemint does not support pkg-config for libcurl -ifeq ($(HOST),mint) - CFLAGS += $(shell curl-config --cflags) - LDFLAGS += $(shell curl-config --libs) -else - $(eval $(call pkg_config_find_and_add_enabled,CURL,libcurl,Curl)) +ifneq ($(TARGET),kolibrios) + ifeq ($(HOST),mint) + CFLAGS += $(shell curl-config --cflags) + LDFLAGS += $(shell curl-config --libs) + else + $(eval $(call pkg_config_find_and_add_enabled,CURL,libcurl,Curl)) + endif + $(eval $(call pkg_config_find_and_add_enabled,OPENSSL,openssl,OpenSSL)) + + $(eval $(call pkg_config_find_and_add_enabled,PNG,libpng,PNG)) + $(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP)) + $(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF)) + $(eval $(call pkg_config_find_and_add_enabled,NSSVG,libsvgtiny,SVG)) + $(eval $(call pkg_config_find_and_add_enabled,ROSPRITE,librosprite,Sprite)) + $(eval $(call pkg_config_find_and_add_enabled,NSPSL,libnspsl,PSL)) endif -$(eval $(call pkg_config_find_and_add_enabled,OPENSSL,openssl,OpenSSL)) - -$(eval $(call pkg_config_find_and_add_enabled,PNG,libpng,PNG)) -$(eval $(call pkg_config_find_and_add_enabled,BMP,libnsbmp,BMP)) -$(eval $(call pkg_config_find_and_add_enabled,GIF,libnsgif,GIF)) -$(eval $(call pkg_config_find_and_add_enabled,NSSVG,libsvgtiny,SVG)) -$(eval $(call pkg_config_find_and_add_enabled,ROSPRITE,librosprite,Sprite)) -$(eval $(call pkg_config_find_and_add_enabled,NSPSL,libnspsl,PSL)) # List of directories in which headers are searched for INCLUDE_DIRS :=. include $(OBJROOT) @@ -581,7 +604,7 @@ $(DEPROOT)/created: $(OBJROOT)/created $(Q)$(TOUCH) $(DEPROOT)/created $(TOOLROOT)/created: $(OBJROOT)/created - $(VQ)echo " MKDIR: $(TOOLROOT)" + $(VQ)echo "MKDIR: $(TOOLROOT)" $(Q)$(MKDIR) -p $(TOOLROOT) $(Q)$(TOUCH) $(TOOLROOT)/created @@ -677,9 +700,16 @@ OBJECTS := $(sort $(addprefix $(OBJROOT)/,$(subst /,_,$(patsubst %.c,%.o,$(patsu # Include directory flags IFLAGS = $(addprefix -I,$(INCLUDE_DIRS)) +ifeq ($(TARGET),kolibrios) + KOLOBJECTS = $(HOME)/kolibrios/programs/develop/libraries/iconv/iconv.o $(HOME)/kolibrios/programs/fs/unzip60/kolibri/dirent.o +endif + $(EXETARGET): $(OBJECTS) $(RESOURCES) $(MESSAGES) $(VQ)echo " LINK: $(EXETARGET)" -ifneq ($(TARGET)$(SUBTARGET),riscos-elf) +ifeq ($(TARGET),kolibrios) + $(warning $(LD) -o $(EXETARGET) $(OBJECTS) $(KOLOBJECTS) $(LDFLAGS)) + $(Q)$(LD) -o $(EXETARGET) $(OBJECTS) $(KOLOBJECTS) $(LDFLAGS) +else ifneq ($(TARGET)$(SUBTARGET),riscos-elf) $(Q)$(CC) -o $(EXETARGET) $(OBJECTS) $(LDFLAGS) else $(Q)$(CXX) -o $(EXETARGET:,ff8=,e1f) $(OBJECTS) $(LDFLAGS) @@ -772,6 +802,9 @@ $$(DEPROOT)/$(3) $$(OBJROOT)/$(2): $$(OBJROOT)/created $$(VQ)echo " COMPILE: $(1)" $$(Q)$$(RM) $$(DEPROOT)/$(3) $$(Q)$$(RM) $$(OBJROOT)/$(2) +# $$(VQ)echo "$$(Q)$$(CC) $$(COMMON_WARNFLAGS) $$(CWARNFLAGS) $$(IFLAGS) $$(CFLAGS) $(CFLAGS_ENV) \ + -MMD -MT '$$(DEPROOT)/$(3) $$(OBJROOT)/$(2)' \ + -MF $$(DEPROOT)/$(3) -o $$(OBJROOT)/$(2) -c $(1)" $$(Q)$$(CC) $$(COMMON_WARNFLAGS) $$(CWARNFLAGS) $$(IFLAGS) $$(CFLAGS) $(CFLAGS_ENV) \ -MMD -MT '$$(DEPROOT)/$(3) $$(OBJROOT)/$(2)' \ -MF $$(DEPROOT)/$(3) -o $$(OBJROOT)/$(2) -c $(1) @@ -843,8 +876,9 @@ $(eval $(foreach SOURCE,$(filter %.s,$(SOURCES)), \ # Test setup # ---------------------------------------------------------------------------- -include test/Makefile - +ifneq ($(TARGET),kolibrios) + include test/Makefile +endif # ---------------------------------------------------------------------------- # Clean setup -- cgit v1.2.3