diff --git a/3rdp/build/Common.gmake b/3rdp/build/Common.gmake new file mode 100644 index 0000000000000000000000000000000000000000..2353d5edc02dffe55afeb71eeea86836ff24e4fd --- /dev/null +++ b/3rdp/build/Common.gmake @@ -0,0 +1,134 @@ +############## +# NSPR Stuff # +############## + +ifeq ($(shell nspr-config --version > /dev/null 2>&1 && echo YES),YES) + NSPRDIR ?= $(shell nspr-config --libdir) + NSPRINCLUDE ?= $(shell nspr-config --includedir) +endif + +ifeq ($(os),sunos) + ifeq ($(shell test -f /usr/sfw/lib/mozilla/libnspr4.so && echo "yes"),yes) + NSPRDIR ?= /usr/sfw/lib/mozilla + ifeq ($(shell test -d /usr/sfw/include/mozilla/nspr && echo "yes"),yes) + NSPRINCLUDE ?= /usr/sfw/include/mozilla/nspr + endif + endif +endif + +ifdef NSPRINCLUDE + NSPR_CFLAGS += -I$(NSPRINCLUDE) +else + # Use local NSPR first... + NSPR_CFLAGS += -I/usr/local/include -I$(SRC_ROOT)$(DIRSEP)..$(DIRSEP)include$(DIRSEP)mozilla$(DIRSEP)nspr +endif + +ifndef NSPRDIR + NSPRDIR := $(SRC_ROOT)$(DIRSEP)..$(DIRSEP)lib$(DIRSEP)mozilla$(DIRSEP)nspr$(DIRSEP)$(machine).$(BUILD) +endif + +#The following is needed for nspr support on Linux +ifeq ($(os),linux) + NSPR_LIBS += -ldl +endif + +NSPR_LDFLAGS += -L/usr/local/lib -L$(NSPRDIR) -lnspr4 + + +################ +# Common stuff # +################ +3RDPODIR := $(3RDP_ROOT)/$(CCPRE).$(machine).$(BUILDPATH) +3RDPSRCDIR := $(3RDP_ROOT)/src +3RDPDISTDIR := $(3RDP_ROOT)/dist +3RDPBUILDDIR := $(3RDP_ROOT)/build +JS_SRC := $(3RDP_ROOT)/src/mozjs +JS_IDIR := $(3RDPODIR)/mozjs +CRYPT_SRC := $(3RDP_ROOT)/src/cl +CRYPT_IDIR := $(3RDPODIR)/cl + +############ +# JS Stuff # +############ + +JS_CFLAGS += -DJAVASCRIPT $(NSPR_CFLAGS) +JS_LDFLAGS += $(NSPR_LDFLAGS) +JS_LIBS += $(NSPR_LIBS) + +ifdef JSLIB + JS_NOBUILD:=1 +else + ifdef JSINCLUDE + JS_NOBUILD:=1 + else + ifdef JSLIBDIR + JS_NOBUILD:=1 + endif + endif +endif + +ifdef JS_NOBUILD + ############################## + # JS Specified on build line # + ############################## + ifeq ($(os),sunos) + ifeq ($(shell test -f /usr/sfw/lib/mozilla/libmozjs185.so && echo "yes"),yes) + JSLIBDIR ?= /usr/sfw/lib/mozilla + JSLIB ?= mozjs185 + endif + endif + + ifndef JSLIB + JSLIB := mozjs185 + endif + JS_DEPS := +else + JSINCLUDE := $(JS_IDIR)$(DIRSEP)include/js + JSLIBDIR := $(JS_IDIR)$(DIRSEP)lib + JSLIB := mozjs185 + JS_DEPS := js +endif + +# Put it all together... + +ifdef JSINCLUDE + JS_CFLAGS += -I$(JSINCLUDE) +endif +ifdef JSLIBDIR + JS_LDFLAGS += -L$(JSLIBDIR) +endif +JS_LIBS += -l$(JSLIB) + +################## +# Cryptlib Stuff # +################## + +ifdef CRYPTLIBINCLUDE + CRYPTLIB_NOBUILD:=1 +else + ifdef CRYPTLIBDIR + CRYPTLIB_NOBUILD:=1 + endif +endif + +ifdef CRYPTLIB_NOBUILD + #################################### + # Cryptlib specified on build line # + #################################### + CRYPT_DEPS := +#else + CRYPTLIBINCLUDE := $(CRYPT_IDIR) + CRYPTLIBDIR := $(CRYPT_IDIR) + CRYPT_DEPS := cl +endif + +# Put it all together... + +ifdef CRYPTLIBINCLUDE + CRYPT_CFLAGS += -I$(CRYPTLIBINCLUDE) +endif +ifdef CRYPTLIBDIR + CRYPT_LDFLAGS += -L$(CRYPTLIBDIR) +endif +CRYPT_LIBS += -lcl + diff --git a/3rdp/build/Common.make b/3rdp/build/Common.make new file mode 100644 index 0000000000000000000000000000000000000000..d1defc96dc7fa5f9ce51b4a832a1b1557d97fea7 --- /dev/null +++ b/3rdp/build/Common.make @@ -0,0 +1,3 @@ +JS_LIB = $(3RDPODIR)$(DIRSEP)mozjs$(DIRSEP)lib$(DIRSEP)$(LIBPREFIX)mozjs185$(SOFILE) +CRYPT_LIB = $(3RDPODIR)$(DIRSEP)cl$(DIRSEP)$(LIBPREFIX)cl$(LIBFILE) + diff --git a/3rdp/build/GNUmakefile b/3rdp/build/GNUmakefile new file mode 100644 index 0000000000000000000000000000000000000000..30645c4fd1c85116d90235ed20df2ca4a72e17ba --- /dev/null +++ b/3rdp/build/GNUmakefile @@ -0,0 +1,48 @@ +# $Id$ + +SRC_ROOT = ../../src +# Cross platform/compiler definitions +include $(SRC_ROOT)/build/Common.gmake # defines clean and output directory rules + +JS_CONFIGURE_ARGS += --with-system-nspr --disable-tests --enable-threadsafe --prefix=$(shell echo `pwd`$(DIRSEP)$(JS_IDIR)) +ifdef DEBUG + JS_CONFIGURE_ARGS += --enable-debug-symbols --disable-optimize +else + JS_CONFIGURE_ARGS += --enable-optimize=-O3 +endif + +############### +# Directories # +############### +$(3RDPODIR): + $(QUIET)$(IFNOTEXIST) mkdir $(3RDPODIR) + +$(3RDPSRCDIR): + $(QUIET)$(IFNOTEXIST) mkdir $(3RDPSRCDIR) + +$(JS_SRC): | $(3RDPSRCDIR) + $(QUIET)$(IFNOTEXIST) mkdir $(JS_SRC) + +$(JS_IDIR): | $(3RDPODIR) + $(QUIET)$(IFNOTEXIST) mkdir $(JS_IDIR) + +$(JSLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/libmozjs.tgz | $(JS_SRC) $(JS_IDIR) + @echo Creating $@ ... + $(QUIET)tar -xzC $(JS_SRC) -f $(3RDPDISTDIR)$(DIRSEP)libmozjs.tgz + -$(QUIET)cd $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src && autoconf-2.13 + $(QUIET)cd $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src && ./configure $(JS_CONFIGURE_ARGS) + $(QUIET)$(MAKE) -C $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src + $(QUIET)$(MAKE) -C $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src install + +$(CRYPT_SRC): | $(3RDPSRCDIR) + $(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_SRC) + +$(CRYPT_IDIR): | $(3RDPODIR) + $(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR) + +$(CRYPTLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/cryptlib.zip | $(CRYPT_SRC) $(CRYPT_IDIR) + @echo Creating $@ ... + $(QUIET)unzip -oua $(3RDPDISTDIR)$(DIRSEP)cryptlib.zip -d $(CRYPT_SRC) + $(QUIET)make -C $(CRYPT_SRC) default + $(QUIET)cp $(CRYPT_SRC)$(DIRSEP)libcl.a $(CRYPT_IDIR) + $(QUIET)cp $(CRYPT_SRC)$(DIRSEP)cryptlib.h $(CRYPT_IDIR) diff --git a/3rdp/build/targets.mk b/3rdp/build/targets.mk new file mode 100644 index 0000000000000000000000000000000000000000..b5479e17c82ed80dff21ef30a0d492e0c2ac98e4 --- /dev/null +++ b/3rdp/build/targets.mk @@ -0,0 +1,10 @@ +JSLIB_BUILD = ..$(DIRSEP)build$(DIRSEP)$(JS_LIB) +CRYPTLIB_BUILD = ..$(DIRSEP)build$(DIRSEP)$(CRYPT_LIB) + +all: lib + +jslib: $(JSLIB_BUILD) + +cryptlib: $(CRYPTLIB_BUILD) + +lib: $(JSLIB_BUILD) $(CRYPTLIB_BUILD)