From d27428d52a43e43c35c37ad48180007b755a428e Mon Sep 17 00:00:00 2001 From: KonstantinosSykas Date: Sun, 9 Jun 2019 13:17:15 +0300 Subject: [PATCH] Linux deps version bump Static link to libjs by default --- GNUmakefile | 75 +++++++++++++++++++++++++++++-------------------- Makefile | 70 +++++++++++++++++++++++++++------------------ deps/Linux-deps | 2 +- 3 files changed, 87 insertions(+), 60 deletions(-) mode change 100644 => 100755 GNUmakefile mode change 100644 => 100755 Makefile diff --git a/GNUmakefile b/GNUmakefile old mode 100644 new mode 100755 index 106025e7..4b4a2cd1 --- a/GNUmakefile +++ b/GNUmakefile @@ -10,64 +10,76 @@ ifeq ($(GNUSTEP_HOST_OS),mingw32) endif GNUSTEP_OBJ_DIR_BASENAME := $(GNUSTEP_OBJ_DIR_NAME) HOST_ARCH := $(shell echo $(GNUSTEP_HOST_CPU) | sed -e s/i.86/x86/ -e s/amd64/x86_64/ ) + ifeq ($(GNUSTEP_HOST_OS),mingw32) - vpath %.rc src/SDL/OOResourcesWin - ifeq ($(GNUSTEP_HOST_CPU),x86_64) - WIN_DEPS_DIR = deps/Windows-deps/x86_64 - else - WIN_DEPS_DIR = deps/Windows-deps/x86 - endif + vpath %.rc src/SDL/OOResourcesWin + +# ifeq ($(GNUSTEP_HOST_CPU),x86_64) +# WIN_DEPS_DIR = deps/Windows-deps/x86_64 +# else +# WIN_DEPS_DIR = deps/Windows-deps/x86 +# endif + + WIN_DEPS_DIR = deps/Windows-deps/$(HOST_ARCH) JS_INC_DIR = $(WIN_DEPS_DIR)/JS32ECMAv5/include - JS_LIB_DIR = $(WIN_DEPS_DIR)/JS32ECMAv5/lib +# JS_LIB_DIR = $(WIN_DEPS_DIR)/JS32ECMAv5/lib ifeq ($(debug),yes) JS_IMPORT_LIBRARY = js32ECMAv5dbg else JS_IMPORT_LIBRARY = js32ECMAv5 endif + ADDITIONAL_INCLUDE_DIRS = -I$(WIN_DEPS_DIR)/include -I$(JS_INC_DIR) -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -Isrc/Core/MiniZip - ADDITIONAL_OBJC_LIBS = -lglu32 -lopengl32 -lopenal32.dll -lpng14.dll -lmingw32 -lSDLmain -lSDL -lvorbisfile.dll -lvorbis.dll -lz -lgnustep-base -l$(JS_IMPORT_LIBRARY) -lwinmm -mwindows + ADDITIONAL_OBJC_LIBS = -L$(WIN_DEPS_DIR)/lib -lglu32 -lopengl32 -lopenal32.dll -lpng14.dll -lmingw32 -lSDLmain -lSDL -lvorbisfile.dll -lvorbis.dll -lz -lgnustep-base -l$(JS_IMPORT_LIBRARY) -lwinmm -mwindows ADDITIONAL_CFLAGS = -DWIN32 -DNEED_STRLCPY `sdl-config --cflags` -mtune=generic # note the vpath stuff above isn't working for me, so adding src/SDL and src/Core explicitly ADDITIONAL_OBJCFLAGS = -DLOADSAVEGUI -DWIN32 -DXP_WIN -Wno-import -std=gnu99 `sdl-config --cflags` -mtune=generic - ifneq ($(GNUSTEP_HOST_CPU),x86_64) - ADDITIONAL_LDFLAGS += -Wl,--large-address-aware - else - ADDITIONAL_LDFLAGS += + ifneq ($(HOST_ARCH),x86_64) + ADDITIONAL_LDFLAGS += -Wl,--large-address-aware +# else +# ADDITIONAL_LDFLAGS += endif - oolite_LIB_DIRS += -L$(GNUSTEP_LOCAL_ROOT)/lib -L$(WIN_DEPS_DIR)/lib -L$(JS_LIB_DIR) +# oolite_LIB_DIRS += -L$(GNUSTEP_LOCAL_ROOT)/lib -L$(WIN_DEPS_DIR)/lib -L$(JS_LIB_DIR) + ifeq ($(ESPEAK),yes) ADDITIONAL_OBJC_LIBS += -lespeak.dll ADDITIONAL_OBJCFLAGS +=-DHAVE_LIBESPEAK=1 GNUSTEP_OBJ_DIR_NAME := $(GNUSTEP_OBJ_DIR_NAME).spk endif else + LIBJS_DIR = deps/Linux-deps/$(HOST_ARCH)/mozilla + LIBJS_INC_DIR = deps/Linux-deps/include/mozilla +# Uncomment the following lines if you want to build JS from source. Ensure the relevant changes are performed in Makefile too +# ifeq ($(debug),yes) +# LIBJS_DIR = deps/mozilla/js/src/build-debug +# else +# LIBJS_DIR = deps/mozilla/js/src/build-release +# endif +# LIBJS_INC_DIR = $(LIBJS_DIR)/dist/include ifeq ($(debug),yes) - LIBJS_ROOT = deps/mozilla/js/src/build-debug + LIBJS = jsdbg_static +# By default we don't share the debug version of JS library +# If you want to debug into JS, ensure a libjsdbg_static.a exists into $(LIBJS_DIR) else - LIBJS_ROOT = deps/mozilla/js/src/build-release + LIBJS = js_static endif - LIBJS_INC_DIR = $(LIBJS_ROOT)/dist/include - LIBJS_LIB_DIR = $(LIBJS_ROOT)/dist/lib - LIBJS = js_static - - ADDITIONAL_INCLUDE_DIRS = -I$(LIBJS_INC_DIR) -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -Isrc/Core/MiniZip - ADDITIONAL_OBJC_LIBS = -lGLU -lGL -lX11 -lSDL -lgnustep-base -l$(LIBJS) `nspr-config --libs` -lstdc++ -lopenal -lz -lvorbisfile - ADDITIONAL_CFLAGS = -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` - ADDITIONAL_OBJCFLAGS = -Wall -std=gnu99 -DLOADSAVEGUI -DLINUX -DXP_UNIX -Wno-import `sdl-config --cflags` `nspr-config --cflags` - oolite_LIB_DIRS += -L$(LIBJS_LIB_DIR) -L/usr/X11R6/lib/ ifeq ($(use_deps),yes) - oolite_LIB_DIRS += -Ldeps/Linux-deps/$(HOST_ARCH)/lib_linker - ADDITIONAL_OBJC_LIBS += -lpng14 - ADDITIONAL_INCLUDE_DIRS += -Ideps/Linux-deps/include - else - ADDITIONAL_OBJC_LIBS += -lpng + OOLITE_SHARED_LIBS = -Ldeps/Linux-deps/$(HOST_ARCH)/lib_linker endif + + ADDITIONAL_INCLUDE_DIRS = -I$(LIBJS_INC_DIR) -Isrc/SDL -Isrc/Core -Isrc/BSDCompat -Isrc/Core/Scripting -Isrc/Core/Materials -Isrc/Core/Entities -Isrc/Core/OXPVerifier -Isrc/Core/Debug -Isrc/Core/Tables -Isrc/Core/MiniZip -Ideps/Linux-deps/include + ADDITIONAL_OBJC_LIBS = $(OOLITE_SHARED_LIBS) -lGLU -lGL -lX11 -lSDL -lgnustep-base -L$(LIBJS_DIR) -l$(LIBJS) -lopenal -lz -lvorbisfile -lpng `nspr-config --libs` -lstdc++ + ADDITIONAL_OBJCFLAGS = -Wall -std=gnu99 -DLOADSAVEGUI -DLINUX -DXP_UNIX -Wno-import `sdl-config --cflags` `nspr-config --cflags` + ADDITIONAL_CFLAGS = -Wall -DLINUX -DNEED_STRLCPY `sdl-config --cflags` `nspr-config --cflags` + ifeq ($(ESPEAK),yes) ADDITIONAL_OBJC_LIBS += -lespeak ADDITIONAL_OBJCFLAGS += -DHAVE_LIBESPEAK=1 GNUSTEP_OBJ_DIR_NAME := $(GNUSTEP_OBJ_DIR_NAME).spk endif +# oolite_LIB_DIRS += -L$(LIBJS_LIB_DIR) -L/usr/X11R6/lib/ + ifeq ($(OO_JAVASCRIPT_TRACE),yes) ADDITIONAL_OBJCFLAGS += -DMOZ_TRACE_JSCALLS=1 endif @@ -91,8 +103,8 @@ ifeq ($(NO_SHADERS),yes) ADDITIONAL_OBJCFLAGS += -DNO_SHADERS=1 endif ifeq ($(FEATURE_REQUEST_5496),yes) - ADDITIONAL_CFLAGS += -DFEATURE_REQUEST_5496=1 - ADDITIONAL_OBJCFLAGS += -DFEATURE_REQUEST_5496=1 + ADDITIONAL_CFLAGS += -DFEATURE_REQUEST_5496=1 + ADDITIONAL_OBJCFLAGS += -DFEATURE_REQUEST_5496=1 endif # DEPLOYMENT_RELEASE_CONFIGURATION value is passed from Makefile. Note that the deployment release settings @@ -437,3 +449,4 @@ oolite_OBJC_FILES = \ include $(GNUSTEP_MAKEFILES)/objc.make include GNUmakefile.postamble + diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 index 5d93c573..08d81cbf --- a/Makefile +++ b/Makefile @@ -32,29 +32,39 @@ DEB_REV := $(shell cat debian/revision) pkg-debtest: DEB_REV := $(shell echo "0~test${DEB_REV}") pkg-debsnapshot: DEB_REV := $(shell echo "0~trunk${DEB_REV}") -ifeq ($(GNUSTEP_HOST_OS),mingw32) - ifeq ($(GNUSTEP_HOST_CPU),x86_64) - LIBJS = deps/Windows-deps/x86_64/DLLs/js32ECMAv5.dll - LIBJS_DBG = deps/Windows-deps/x86_64/DLLs/js32ECMAv5.dll - else - LIBJS = deps/Windows-deps/x86/DLLs/js32ECMAv5.dll - LIBJS_DBG = deps/Windows-deps/x86/DLLs/js32ECMAv5.dll - endif - DEPS = $(LIBJS) - DEPS_DBG = $(LIBJS_DBG) -else - # define autopackage .apspec file according to the CPU architecture + DEPS = + DEPS_DBG = +ifneq ($(GNUSTEP_HOST_OS),mingw32) HOST_ARCH := $(shell echo $(GNUSTEP_HOST_CPU) | sed -e s/i.86/x86/ -e s/amd64/x86_64/ ) - ifeq ($(HOST_ARCH),x86_64) - APSPEC_FILE = installers/autopackage/default.x86_64.apspec - else - APSPEC_FILE = installers/autopackage/default.x86.apspec - endif - - DEPS = LIBJS - DEPS_DBG = LIBJS_DBG + APSPEC_FILE = installers/autopackage/default.$(HOST_ARCH).apspec +# Uncomment the following two variables, if you want to build JS from source. Ensure the relevant changes are performed in GNUmakefile too +# DEPS = LIBJS +# DEPS_DBG = LIBJS_DBG endif +# ifeq ($(GNUSTEP_HOST_OS),mingw32) +# # ifeq ($(GNUSTEP_HOST_CPU),x86_64) +# # LIBJS = deps/Windows-deps/x86_64/DLLs/js32ECMAv5.dll +# # LIBJS_DBG = deps/Windows-deps/x86_64/DLLs/js32ECMAv5.dll +# # else +# # LIBJS = deps/Windows-deps/x86/DLLs/js32ECMAv5.dll +# # LIBJS_DBG = deps/Windows-deps/x86/DLLs/js32ECMAv5.dll +# # endif +# # LIBJS = deps/Windows-deps/$(GNUSTEP_HOST_CPU)/DLLs/js32ECMAv5.dll +# # LIBJS_DBG = deps/Windows-deps/$(GNUSTEP_HOST_CPU)/DLLs/js32ECMAv5.dll +# # DEPS = $(LIBJS) +# # DEPS_DBG = $(LIBJS_DBG) +# DEPS = +# DEPS_DBG = +# else +# HOST_ARCH := $(shell echo $(GNUSTEP_HOST_CPU) | sed -e s/i.86/x86/ -e s/amd64/x86_64/ ) +# APSPEC_FILE = installers/autopackage/default.$(HOST_ARCH).apspec +# # DEPS = LIBJS +# # DEPS_DBG = LIBJS_DBG +# DEPS = +# DEPS_DBG = +# endif + # Here are our default targets # @@ -80,21 +90,25 @@ release-snapshot: $(DEPS) # Here are targets using the provided dependencies .PHONY: deps-debug deps-debug: $(DEPS_DBG) + cd deps/Linux-deps/$(HOST_ARCH)/lib_linker && ./make_so_links.sh && cd ../../../.. $(MAKE) -f GNUmakefile debug=yes use_deps=yes strip=no mkdir -p AddOns && rm -rf AddOns/Basic-debug.oxp && cp -rf DebugOXP/Debug.oxp AddOns/Basic-debug.oxp .PHONY: deps-release deps-release: $(DEPS) + cd deps/Linux-deps/$(HOST_ARCH)/lib_linker && ./make_so_links.sh && cd ../../../.. $(MAKE) -f GNUmakefile debug=no use_deps=yes strip=yes mkdir -p AddOns && rm -rf AddOns/Basic-debug.oxp && cp -rf DebugOXP/Debug.oxp AddOns/Basic-debug.oxp .PHONY: deps-release-deployment deps-release-deployment: $(DEPS) + cd deps/Linux-deps/$(HOST_ARCH)/lib_linker && ./make_so_links.sh && cd ../../../.. $(MAKE) -f GNUmakefile DEPLOYMENT_RELEASE_CONFIGURATION=yes debug=no use_deps=yes strip=yes .PHONY: deps-release-snapshot deps-release-snapshot: $(DEPS) + cd deps/Linux-deps/$(HOST_ARCH)/lib_linker && ./make_so_links.sh && cd ../../../.. $(MAKE) -f GNUmakefile SNAPSHOT_BUILD=yes VERSION_STRING=$(VER) debug=no use_deps=yes strip=yes mkdir -p AddOns && rm -rf AddOns/Basic-debug.oxp && cp -rf DebugOXP/Debug.oxp AddOns/Basic-debug.oxp @@ -107,14 +121,14 @@ ifeq ($(GNUSTEP_HOST_OS),mingw32) endif $(MAKE) -f libjs.make debug=yes -.PHONY: LIBJS -LIBJS: -ifeq ($(GNUSTEP_HOST_OS),mingw32) - @echo "ERROR - this Makefile can't (yet) build the Javascript DLL" - @echo " Please build it yourself and copy it to $(LIBJS)." - false -endif - $(MAKE) -f libjs.make debug=no +# .PHONY: LIBJS +# LIBJS: +# ifeq ($(GNUSTEP_HOST_OS),mingw32) +# @echo "ERROR - this Makefile can't (yet) build the Javascript DLL" +# @echo " Please build it yourself and copy it to $(LIBJS)." +# false +# endif +# $(MAKE) -f libjs.make debug=no .PHONY: clean clean: diff --git a/deps/Linux-deps b/deps/Linux-deps index 5740a78c..07f51db0 160000 --- a/deps/Linux-deps +++ b/deps/Linux-deps @@ -1 +1 @@ -Subproject commit 5740a78cd84b96ba6035174489ab6f8e6b10291f +Subproject commit 07f51db0c22c54bba7e9d839607bd95fd75693a9