summaryrefslogtreecommitdiff
path: root/common/ugcc_top.mak
diff options
context:
space:
mode:
Diffstat (limited to 'common/ugcc_top.mak')
-rw-r--r--common/ugcc_top.mak114
1 files changed, 114 insertions, 0 deletions
diff --git a/common/ugcc_top.mak b/common/ugcc_top.mak
new file mode 100644
index 000000000..5aaafd3bb
--- /dev/null
+++ b/common/ugcc_top.mak
@@ -0,0 +1,114 @@
+# Copyright (C) 1997-2007 Artifex Software, Inc.
+# All Rights Reserved.
+#
+# This software is provided AS-IS with no warranty, either express or
+# implied.
+#
+# This software is distributed under license and may not be copied, modified
+# or distributed except as expressly authorized under the terms of that
+# license. Refer to licensing information at http://www.artifex.com/
+# or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+# San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+#
+# ugcc_top.mak
+# Generic top-level makefile for Unix/gcc platforms.
+#
+# The product-specific top-level makefile defines the following:
+# MAKEFILE, CCLD, COMMONDIR, CONFIG, DEVICE_DEVS,
+# GCFLAGS, GENDIR, GLSRCDIR, GLGENDIR, GLOBJDIR, PSD
+# TOP_OBJ, MAIN_OBJ, TARGET_DEVS, TARGET_XE
+# It also must include the product-specific *.mak.
+
+# Platform specification
+include $(COMMONDIR)/gccdefs.mak
+include $(COMMONDIR)/unixdefs.mak
+include $(COMMONDIR)/generic.mak
+
+# these gems were plucked from the old ugcclib.mak. The CC options
+# seem to be out of sync.
+
+BINDIR=./libobj
+GLD=$(GLGENDIR)/
+CCFLAGS=$(GENOPT) $(CFLAGS)
+CC_=$(CC) $(CCFLAGS)
+CCAUX=$(CC)
+CC_NO_WARN=$(CC_) -Wno-cast-qual -Wno-traditional
+CC_SHARED=$(CC_)
+
+include $(GLSRCDIR)/unixhead.mak
+include $(GLSRCDIR)/gs.mak
+include $(GLSRCDIR)/lib.mak
+include $(GLSRCDIR)/int.mak
+include $(GLSRCDIR)/jpeg.mak
+# zlib.mak must precede libpng.mak
+include $(GLSRCDIR)/zlib.mak
+include $(GLSRCDIR)/libpng.mak
+include $(GLSRCDIR)/jbig2.mak
+include $(GLSRCDIR)/icclib.mak
+include $(GLSRCDIR)/ijs.mak
+include $(GLSRCDIR)/devs.mak
+include $(GLSRCDIR)/contrib.mak
+include $(GLSRCDIR)/unix-aux.mak
+include $(GLSRCDIR)/unix-end.mak
+include $(GLSRCDIR)/version.mak
+
+
+UGCC_TOP_DIR:
+ @if test ! -d $(GLGENDIR); then mkdir $(GLGENDIR); fi
+
+# Configure for debugging
+pdl-debug: UGCC_TOP_DIR
+ $(MAKE) -f $(firstword $(MAKEFILE)) GENOPT='-DDEBUG' CFLAGS='-ggdb -g3 -O0 $(GCFLAGS) $(XCFLAGS)' LDFLAGS='$(XLDFLAGS)' pdl-default
+
+pdl-pg-with-cov: UGCC_TOP_DIR
+ $(MAKE) -f $(firstword $(MAKEFILE)) GENDIR=$(PGGENDIR) GENOPT='' CFLAGS='-g -pg -O2 -fprofile-arcs -ftest-coverage $(GCFLAGS) $(XCFLAGS)' LDFLAGS='$(XLDFLAGS) -pg -fprofile-arcs -ftest-coverage' pdl-default
+
+# Configure for profiling
+pdl-pg: UGCC_TOP_DIR
+ $(MAKE) -f $(firstword $(MAKEFILE)) GENDIR=$(PGGENDIR) GENOPT='' CFLAGS='-g -pg -O2 $(GCFLAGS) $(XCFLAGS)' LDFLAGS='$(XLDFLAGS) -pg' pdl-default
+
+# Configure for optimization.
+pdl-product: UGCC_TOP_DIR
+ $(MAKE) -f $(firstword $(MAKEFILE)) GENOPT='' GCFLAGS='$(GCFLAGS)' CFLAGS='-O2 $(GCFLAGS) $(XCFLAGS)' LDFLAGS='$(XLDFLAGS)' pdl-default
+
+# NB not complete, remove genarch and other miscellany.
+pdl-clean:
+ $(RMN_) $(GENDIR)/*.dev $(GENDIR)/devs*.tr $(GENDIR)/gconfig*.h
+ $(RMN_) $(GENDIR)/gconfx*.h $(GENDIR)/j*.h
+ $(RMN_) $(GENDIR)/c*.tr $(GENDIR)/o*.tr $(GENDIR)/l*.tr
+ $(RMN_) $(GENDIR)/*.$(OBJ)
+ $(RMN_) $(GENDIR)/*.h
+ $(RMN_) $(GENDIR)/*.c
+ $(RMN_) $(TARGET_XE)$(XE)
+
+# Build the configuration file.
+$(GENDIR)/pconf.h $(GENDIR)/ldconf.tr: $(TARGET_DEVS) $(GLOBJDIR)/genconf$(XE)
+ $(GLOBJDIR)/genconf -n - $(TARGET_DEVS) -h $(GENDIR)/pconf.h -p "%s&s&&" -o $(GENDIR)/ldconf.tr
+
+# Create a library
+$(TARGET_LIB): $(ld_tr) $(GENDIR)/ldconf.tr $(MAIN_OBJ) $(TOP_OBJ) $(XOBJS) $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ)
+ $(ECHOGS_XE) -w $(GENDIR)/ldall.tr -n - $(AR) $(ARFLAGS) $@
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -n -s $(TOP_OBJ) $(XOBJS) -s
+ cat $(GENDIR)/ldt.tr $(GENDIR)/ldconf.tr | grep ".o" >>$(GENDIR)/ldall.tr
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -s - $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ) $(MAIN_OBJ)
+ LD_RUN_PATH=$(XLIBDIR); export LD_RUN_PATH; sh <$(GENDIR)/ldall.tr
+
+ifeq ($(PSICFLAGS), -DPSI_INCLUDED)
+# Link a Unix executable. NB - XOBS is not concatenated to the link
+# list here. It seems to have been done earlier on unlike the
+# standalone pcl build below.
+$(TARGET_XE): $(ld_tr) $(GENDIR)/ldconf.tr $(MAIN_OBJ) $(TOP_OBJ) $(XOBJS) $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ)
+ $(ECHOGS_XE) -w $(GENDIR)/ldall.tr -n - $(CCLD) $(LDFLAGS) $(XLIBDIRS) -o $(TARGET_XE)
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -n -s $(TOP_OBJ) -s
+ cat $(ld_tr) $(GENDIR)/ldconf.tr >>$(GENDIR)/ldall.tr
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -s - $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ) $(MAIN_OBJ) $(EXTRALIBS) $(STDLIBS)
+ sh <$(GENDIR)/ldall.tr
+else
+# Link a Unix executable.
+$(TARGET_XE): $(ld_tr) $(GENDIR)/ldconf.tr $(MAIN_OBJ) $(TOP_OBJ) $(XOBJS) $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ)
+ $(ECHOGS_XE) -w $(GENDIR)/ldall.tr -n - $(CCLD) $(LDFLAGS) $(XLIBDIRS) -o $(TARGET_XE)
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -n -s $(TOP_OBJ) $(XOBJS) -s
+ cat $(ld_tr) $(GENDIR)/ldconf.tr >>$(GENDIR)/ldall.tr
+ $(ECHOGS_XE) -a $(GENDIR)/ldall.tr -s - $(GLOBJDIR)/gsromfs$(COMPILE_INITS).$(OBJ) $(MAIN_OBJ) $(EXTRALIBS) $(STDLIBS)
+ sh <$(GENDIR)/ldall.tr
+endif