13ff48bf5SDavid du Colombier# Copyright (C) 2001 Artifex Software, Inc. All rights reserved. 23ff48bf5SDavid du Colombier# 3*593dc095SDavid du Colombier# This software is provided AS-IS with no warranty, either express or 4*593dc095SDavid du Colombier# implied. 53ff48bf5SDavid du Colombier# 6*593dc095SDavid du Colombier# This software is distributed under license and may not be copied, 7*593dc095SDavid du Colombier# modified or distributed except as expressly authorized under the terms 8*593dc095SDavid du Colombier# of the license contained in the file LICENSE in this distribution. 93ff48bf5SDavid du Colombier# 10*593dc095SDavid du Colombier# For more information about licensing, please refer to 11*593dc095SDavid du Colombier# http://www.ghostscript.com/licensing/. For information on 12*593dc095SDavid du Colombier# commercial licensing, go to http://www.artifex.com/licensing/ or 13*593dc095SDavid du Colombier# contact Artifex Software, Inc., 101 Lucas Valley Road #110, 14*593dc095SDavid du Colombier# San Rafael, CA 94903, U.S.A., +1(415)492-9861. 153ff48bf5SDavid du Colombier 16*593dc095SDavid du Colombier# $Id: macos-fw.mak,v 1.7 2003/09/03 03:22:59 giles Exp $ 173ff48bf5SDavid du Colombier# Partial makefile for MacOS X/Darwin shared object target 183ff48bf5SDavid du Colombier 193ff48bf5SDavid du Colombier# Useful make commands: 203ff48bf5SDavid du Colombier# make framework make ghostscript as a MacOS X framework 21*593dc095SDavid du Colombier# make framework_install install the framework 223ff48bf5SDavid du Colombier# make so make ghostscript as a shared object 233ff48bf5SDavid du Colombier# make sodebug make debug ghostscript as a shared object 243ff48bf5SDavid du Colombier# make soinstall install shared object ghostscript 253ff48bf5SDavid du Colombier# make soclean remove build files 263ff48bf5SDavid du Colombier# 273ff48bf5SDavid du Colombier# If you want to test the executable without installing: 283ff48bf5SDavid du Colombier# export LD_LIBRARY_PATH=/insert-path-here/sobin 293ff48bf5SDavid du Colombier# export GS_LIB=/insert-path-here/lib 303ff48bf5SDavid du Colombier 313ff48bf5SDavid du Colombier# Location for building shared object 323ff48bf5SDavid du ColombierSOOBJRELDIR=../soobj 333ff48bf5SDavid du ColombierSOBINRELDIR=../sobin 343ff48bf5SDavid du Colombier 353ff48bf5SDavid du Colombier# ------------------- Ghostscript shared object --------------------------- # 363ff48bf5SDavid du Colombier 373ff48bf5SDavid du Colombier# Shared object names 383ff48bf5SDavid du Colombier 393ff48bf5SDavid du Colombier# simple loader (no support for display device) 403ff48bf5SDavid du ColombierGSSOC_XENAME=$(GS)c$(XE) 413ff48bf5SDavid du ColombierGSSOC_XE=$(BINDIR)/$(GSSOC_XENAME) 423ff48bf5SDavid du ColombierGSSOC=$(BINDIR)/$(SOBINRELDIR)/$(GSSOC_XENAME) 433ff48bf5SDavid du Colombier 443ff48bf5SDavid du Colombier# shared library 453ff48bf5SDavid du Colombier#SOPREF=.so 463ff48bf5SDavid du Colombier#SOSUF= 473ff48bf5SDavid du ColombierSOPREF= 483ff48bf5SDavid du ColombierSOSUF=.dylib 493ff48bf5SDavid du Colombier 503ff48bf5SDavid du ColombierGS_SONAME_BASE=lib$(GS)$(SOPREF) 513ff48bf5SDavid du ColombierGS_SONAME=$(GS_SONAME_BASE)$(SOSUF) 523ff48bf5SDavid du ColombierGS_SONAME_MAJOR=$(GS_SONAME_BASE).$(GS_VERSION_MAJOR)$(SOSUF) 533ff48bf5SDavid du ColombierGS_SONAME_MAJOR_MINOR= $(GS_SONAME_BASE).$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR)$(SOSUF) 543ff48bf5SDavid du ColombierGS_SO=$(BINDIR)/$(GS_SONAME) 553ff48bf5SDavid du ColombierGS_SO_MAJOR=$(BINDIR)/$(GS_SONAME_MAJOR) 563ff48bf5SDavid du ColombierGS_SO_MAJOR_MINOR=$(BINDIR)/$(GS_SONAME_MAJOR_MINOR) 573ff48bf5SDavid du Colombier 583ff48bf5SDavid du Colombier# Shared object is built by redefining GS_XE in a recursive make. 593ff48bf5SDavid du Colombier 603ff48bf5SDavid du Colombier# Create symbolic links to the Ghostscript interpreter library 613ff48bf5SDavid du Colombier 623ff48bf5SDavid du Colombier$(GS_SO): $(GS_SO_MAJOR) 633ff48bf5SDavid du Colombier $(RM_) $(GS_SO) 643ff48bf5SDavid du Colombier ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO) 653ff48bf5SDavid du Colombier 663ff48bf5SDavid du Colombier$(GS_SO_MAJOR): $(GS_SO_MAJOR_MINOR) 673ff48bf5SDavid du Colombier $(RM_) $(GS_SO_MAJOR) 683ff48bf5SDavid du Colombier ln -s $(GS_SONAME_MAJOR_MINOR) $(GS_SO_MAJOR) 693ff48bf5SDavid du Colombier 70*593dc095SDavid du Colombier# Build the small Ghostscript loaders 71*593dc095SDavid du Colombier# it would be nice if we could link to the framework instead 723ff48bf5SDavid du Colombier 733ff48bf5SDavid du Colombier$(GSSOC_XE): $(GS_SO) $(GLSRC)dxmainc.c 743ff48bf5SDavid du Colombier $(GLCC) -g -o $(GSSOC_XE) $(GLSRC)dxmainc.c -L$(BINDIR) -l$(GS) 753ff48bf5SDavid du Colombier 763ff48bf5SDavid du Colombier# ------------------------- Recursive make targets ------------------------- # 773ff48bf5SDavid du Colombier 783ff48bf5SDavid du Colombier# we pass the framework path under -install_name here rather than /usr/local/lib 793ff48bf5SDavid du Colombier# or whatever. This will effectively break the .dylib build in favor of the 803ff48bf5SDavid du Colombier# Framework. Generally on MacOS X this is what we want, but there should be 813ff48bf5SDavid du Colombier# a separate .dylib target if we're going to build them at all 823ff48bf5SDavid du Colombier# we should also be passing compatibility versions 833ff48bf5SDavid du Colombier 843ff48bf5SDavid du ColombierSODEFS=LDFLAGS='$(LDFLAGS) $(CFLAGS_SO) -dynamiclib -install_name $(prefix)/$(FRAMEWORK_NAME)'\ 853ff48bf5SDavid du Colombier GS_XE=$(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR)\ 863ff48bf5SDavid du Colombier STDIO_IMPLEMENTATION=c\ 873ff48bf5SDavid du Colombier DISPLAY_DEV=$(DD)$(SOOBJRELDIR)/display.dev\ 883ff48bf5SDavid du Colombier BINDIR=$(BINDIR)/$(SOBINRELDIR)\ 893ff48bf5SDavid du Colombier GLGENDIR=$(GLGENDIR)/$(SOOBJRELDIR)\ 903ff48bf5SDavid du Colombier GLOBJDIR=$(GLOBJDIR)/$(SOOBJRELDIR)\ 913ff48bf5SDavid du Colombier PSGENDIR=$(PSGENDIR)/$(SOOBJRELDIR)\ 923ff48bf5SDavid du Colombier PSOBJDIR=$(PSOBJDIR)/$(SOOBJRELDIR) 933ff48bf5SDavid du Colombier 943ff48bf5SDavid du Colombier 953ff48bf5SDavid du Colombier# Normal shared object 963ff48bf5SDavid du Colombierso: SODIRS 973ff48bf5SDavid du Colombier $(MAKE) $(SODEFS) CFLAGS='$(CFLAGS_STANDARD) $(CFLAGS_SO) $(GCFLAGS) $(XCFLAGS)' prefix=$(prefix) $(GSSOC) $(GSSOX) 983ff48bf5SDavid du Colombier 993ff48bf5SDavid du Colombier# Debug shared object 1003ff48bf5SDavid du Colombier# Note that this is in the same directory as the normal shared 1013ff48bf5SDavid du Colombier# object, so you will need to use 'make soclean', 'make sodebug' 1023ff48bf5SDavid du Colombiersodebug: SODIRS 1033ff48bf5SDavid du Colombier $(MAKE) $(SODEFS) GENOPT='-DDEBUG' CFLAGS='$(CFLAGS_DEBUG) $(CFLAGS_SO) $(GCFLAGS) $(XCFLAGS)' $(GSSOC) $(GSSOX) 1043ff48bf5SDavid du Colombier 1053ff48bf5SDavid du Colombierinstall-so: so 1063ff48bf5SDavid du Colombier -mkdir $(prefix) 1073ff48bf5SDavid du Colombier -mkdir $(datadir) 1083ff48bf5SDavid du Colombier -mkdir $(gsdir) 1093ff48bf5SDavid du Colombier -mkdir $(gsdatadir) 1103ff48bf5SDavid du Colombier -mkdir $(bindir) 1113ff48bf5SDavid du Colombier -mkdir $(libdir) 1123ff48bf5SDavid du Colombier $(INSTALL_PROGRAM) $(GSSOC) $(bindir)/$(GSSOC_XENAME) 1133ff48bf5SDavid du Colombier $(INSTALL_PROGRAM) $(GSSOX) $(bindir)/$(GSSOX_XENAME) 1143ff48bf5SDavid du Colombier $(INSTALL_PROGRAM) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR_MINOR) 1153ff48bf5SDavid du Colombier $(RM_) $(libdir)/$(GS_SONAME) 1163ff48bf5SDavid du Colombier ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME) 1173ff48bf5SDavid du Colombier $(RM_) $(libdir)/$(GS_SONAME_MAJOR) 1183ff48bf5SDavid du Colombier ln -s $(GS_SONAME_MAJOR_MINOR) $(libdir)/$(GS_SONAME_MAJOR) 1193ff48bf5SDavid du Colombier 1203ff48bf5SDavid du Colombiersoinstall: install-so install-scripts install-data 1213ff48bf5SDavid du Colombier 1223ff48bf5SDavid du ColombierGS_FRAMEWORK=$(BINDIR)/$(SOBINRELDIR)/$(FRAMEWORK_NAME)$(FRAMEWORK_EXT) 1233ff48bf5SDavid du Colombier 1243ff48bf5SDavid du Colombierframework: so lib/Info-macos.plist 1253ff48bf5SDavid du Colombier rm -rf $(GS_FRAMEWORK) 1263ff48bf5SDavid du Colombier -mkdir $(GS_FRAMEWORK) 1273ff48bf5SDavid du Colombier -mkdir $(GS_FRAMEWORK)/Versions 1283ff48bf5SDavid du Colombier -mkdir $(GS_FRAMEWORK)/Versions/$(GS_DOT_VERSION) 1293ff48bf5SDavid du Colombier -mkdir $(GS_FRAMEWORK)/Versions/$(GS_DOT_VERSION)/Headers 1303ff48bf5SDavid du Colombier -mkdir $(GS_FRAMEWORK)/Versions/$(GS_DOT_VERSION)/Resources 1313ff48bf5SDavid du Colombier (cd $(GS_FRAMEWORK)/Versions; ln -s $(GS_DOT_VERSION) Current) 1323ff48bf5SDavid du Colombier (cd $(GS_FRAMEWORK); \ 1333ff48bf5SDavid du Colombier ln -s Versions/Current/Headers . ;\ 1343ff48bf5SDavid du Colombier ln -s Versions/Current/Resources ;\ 1353ff48bf5SDavid du Colombier ln -s Versions/Current/man . ;\ 1363ff48bf5SDavid du Colombier ln -s Versions/Current/doc . ;\ 1373ff48bf5SDavid du Colombier ln -s Versions/Current/$(FRAMEWORK_NAME) . ) 1383ff48bf5SDavid du Colombier pwd 139*593dc095SDavid du Colombier cp src/iapi.h src/ierrors.h src/gdevdsp.h $(GS_FRAMEWORK)/Headers/ 1403ff48bf5SDavid du Colombier cp lib/Info-macos.plist $(GS_FRAMEWORK)/Resources/ 1413ff48bf5SDavid du Colombier cp -r lib $(GS_FRAMEWORK)/Resources/ 1423ff48bf5SDavid du Colombier cp $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR_MINOR) $(GS_FRAMEWORK)/Versions/Current/$(FRAMEWORK_NAME) 1433ff48bf5SDavid du Colombier cp -r man $(GS_FRAMEWORK)/Versions/Current 1443ff48bf5SDavid du Colombier cp -r doc $(GS_FRAMEWORK)/Versions/Current 1453ff48bf5SDavid du Colombier 146*593dc095SDavid du Colombierframework_install : framework 147*593dc095SDavid du Colombier rm -rf $(prefix) 148*593dc095SDavid du Colombier cp -r $(GS_FRAMEWORK) $(prefix) 149*593dc095SDavid du Colombier 1503ff48bf5SDavid du Colombier# Make the build directories 1513ff48bf5SDavid du ColombierSODIRS: STDDIRS 1523ff48bf5SDavid du Colombier @if test ! -d $(BINDIR)/$(SOBINRELDIR); then mkdir $(BINDIR)/$(SOBINRELDIR); fi 1533ff48bf5SDavid du Colombier @if test ! -d $(GLGENDIR)/$(SOOBJRELDIR); then mkdir $(GLGENDIR)/$(SOOBJRELDIR); fi 1543ff48bf5SDavid du Colombier @if test ! -d $(GLOBJDIR)/$(SOOBJRELDIR); then mkdir $(GLOBJDIR)/$(SOOBJRELDIR); fi 1553ff48bf5SDavid du Colombier @if test ! -d $(PSGENDIR)/$(SOOBJRELDIR); then mkdir $(PSGENDIR)/$(SOOBJRELDIR); fi 1563ff48bf5SDavid du Colombier @if test ! -d $(PSOBJDIR)/$(SOOBJRELDIR); then mkdir $(PSOBJDIR)/$(SOOBJRELDIR); fi 1573ff48bf5SDavid du Colombier 1583ff48bf5SDavid du Colombier 1593ff48bf5SDavid du Colombiersoclean: SODIRS 1603ff48bf5SDavid du Colombier $(MAKE) $(SODEFS) clean 1613ff48bf5SDavid du Colombier $(RM_) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME) 1623ff48bf5SDavid du Colombier $(RM_) $(BINDIR)/$(SOBINRELDIR)/$(GS_SONAME_MAJOR) 1633ff48bf5SDavid du Colombier $(RM_) $(GSSOC) 1643ff48bf5SDavid du Colombier $(RM_) $(GSSOX) 1653ff48bf5SDavid du Colombier 1663ff48bf5SDavid du Colombier# End of unix-dll.mak 167