# This is a make file inclusion, to be included in all the Netpbm make # files. # This file is meant to contain variable settings that customize the # build for a particular target system configuration. # The distribution contains the file Makefile.config.in. You edit # Makefile.config.in in ways relevant to your particular environment # to create Makefile.config. The "configure" program will do this # for you in simple cases. # Some of the variables that the including make file must set for this # file to work: # # SRCDIR: The directory at the top of the Netpbm source tree. Note that # this is typically a relative directory, and it must be relative to the # make file that includes this file. So it's normally "..". DEFAULT_TARGET = nonmerge #DEFAULT_TARGET = merge # Fiasco has some special requirements that make it fail to compile on # some systems, and since it isn't very important, just set this to "N" # and skip it on those systems unless you want to debug it and fix it. # OpenBSD: #BUILD_FIASCO = N BUILD_FIASCO = Y # The following are commands for the build process to use. These values # do not get built into anything. # The C compiler (including macro preprocessor) #Tru64 (= Digital Unix): #CC = cc #CC = gcc CC = gcc # The linker. LD = $(CC) #LD = ld #Tru64: #LD = cc #LD = gcc # MAKE is set automatically by Make to what was used to invoke Make. INSTALL = ginstall #Solaris: #INSTALL = /usr/ucb/install #Tru64: #INSTALL = installbsd #OSF1: #INSTALL = installosf #Red Hat Linux: #INSTALL = install # STRIPFLAG is the option you pass to the above install program to make it # strip unnecessary information out of binaries. STRIPFLAG = -s # If you don't want to strip the binaries, just leave it null: #STRIPFLAG = SYMLINK = ln -s # At least some Windows environments don't have any concept of symbolic # links, but direct copies are usually a passable alternative. #SYMLINK = cp # Normally the man pages are installed using "install". But via this # variable, you can use something else, for example a script that # calls compress or pack. Mantocat, included with Netpbm, is used on # systems which use man pages in the "cat" format. MANCP = $(INSTALL) -c -m $(INSTALL_PERM_MAN) #DJGPP/Windows: #MANCP = $(SRCDIR)/mantocat AR = ar RANLIB = ranlib LEX = flex # Solaris: # LEX = flex -e # Or just skip parts that need Lex: # LEX = # C compiler options # gcc: # -ansi and -Werror should work too, but are not included # by default because there's no point in daring the build to fail. # -pedantic isn't a problem because it causes at worst a warning. CFLAGS = -pedantic -O3 -Wall -Wno-uninitialized # On DEC Tru64 4.0F (at least), you need -DLONG_32 for ppmtompeg. #Tru64: #CFLAGS = -O2 -std1 -DLONG_32 #AIX: #CFLAGS= -O3 -D_ALL_SOURCE #HP-UX: #CFLAGS= -O3 -fPIC # EXE is a suffix that the linker puts on any executable it generates. # In cygwin, this is .exe and most programs deal with its existence without # us having to know about it. Some don't though, so set this: EXE = #Cygwin, DJGPP/Windows: #EXE = .exe # linker options. # On some systems you have to build into an executable the list of # directories where its dynamically linked libraries can be found at # run time. This is typically done with a -R or --rpath linker # option. Even on systems that don't require it, you might prefer to do # that rather than set up environment variables or configuration files # to tell the system where the libraries are. A "Y" here means to put # the directory information in the executable at link time. # Solaris, SunOS, NetBSD: NEED_RUNTIME_PATH = N #NEED_RUNTIME_PATH = Y LDFLAGS = # Eunice users may want to use -noshare so that the executables can # run standalone: #LDFLAGS = -noshare #Tru64: # Russ Allberry says on 2001.06.09 that -oldstyle_liblookup may be necessary # to keep from finding an ancient system libjpeg.so that isn't compatible with # NetPBM. #LDFLAGS = -call_shared -oldstyle_liblookup #AIX: #LDFLAGS=-L /usr/pubsw/lib #HP-UX: #LDFLAGS = -Wl,+b,/usr/pubsw/lib ifeq ($(NEED_RUNTIME_PATH),Y) #If the linker is gcc (e.g. NetBSD): #LDFLAGS += -Wl,--rpath,$(INSTALLLIBS) #Any other linker: LDFLAGS += -R$(INSTALLLIBS) endif # Linker options for created Netpbm shared libraries. # Here, $(SONAME) resolves to the soname for the shared library being created. # The following are gcc options. This works on GNU libc systems. LDSHLIB = -shared -Wl,-soname,$(SONAME) # You need -nostart instead of -shared on BeOS. Though the BeOS compiler is # ostensibly gcc, it has the -nostart option, which is not mentioned in gcc # documentation and doesn't exist in at least one non-BeOS installation. # BeOS doesn't have sonames built in. #LDSHLIB = -nostart #LDSHLIB = -G # Solaris, SunOS with GNU Ld: # These systems have no soname option. #LDSHLIB = -shared # Solaris with Sun Ld: #LDSHLIB = -Wl,-B,dynamic,-G,-h,$(SONAME) #Tru64: #LDSHLIB = -shared -expect_unresolved "*" ifeq ($(NEED_RUNTIME_PATH),Y) #If the linker is gcc (e.g. NetBSD): #LDSHLIB += -Wl,--rpath,$(INSTALLLIBS) #Any other linker: LDSHLIB += -R$(INSTALLLIBS) endif # On older systems, you have to make shared libraries out of position # independent code, so you need -fpic or fPIC here. (The rule is: if # -fpic works, use it. If it bombs, go to fPIC). On newer systems, # it isn't necessary, but can save real memory at the expense of # execution speed. Without position independent code, the library # loader may have to patch addresses into the executable text. On an # older system, this would cause a program crash because the loader # would be writing into read-only shared memory. But on newer # systems, the system silently creates a private mapping of the page # or segment being modified (the "copy on write" phenomenon). So it # needs its own private real page frame. In one experiment, A second # copy of Pbmtext used 16K less real memory when built with -fpic than # when built without. 2001.06.02. CFLAGS_SHLIB = # Solaris or SunOS with gcc, and NetBSD: #CFLAGS_SHLIB = -fpic #CFLAGS_SHLIB = -fPIC # Sun compiler: #CFLAGS_SHLIB = -Kpic #CFLAGS_SHLIB = -KPIC # The following variables tell where your various libraries on which # Netpbm depends live. The xxxHDR_DIR variable is the directory in which # the interface headers for the library live (e.g. /usr/include) and # xxxLIB_DIR is the directory in which the link library (not necessarily # the library used at run time) lives, e.g. /usr/lib. If you don't have # the library in question, use a value of NONE and the build will simply # skip the programs that require that library. If the library is in your # compiler's/linker's default search path, it doesn't matter what you put # here. # The TIFF library. See above. If you want to build the tiff # converters, you must have the tiff library already installed. TIFFLIB_DIR = /usr/lib TIFFHDR_DIR = /usr/include/libtiff #NetBSD: #TIFFLIB_DIR = $(LOCALBASE)/lib #TIFFHDR_DIR = $(LOCALBASE)/include # OSF, Tru64: #TIFFLIB_DIR = /usr/local1/DEC/lib #TIFFHDR_DIR = /usr/local1/DEC/include #TIFFLIB_DIR = NONE #TIFFHDR_DIR = NONE # If your Tiff library depends on libraries other than libc and libm, # put the required linker options here. TIFFLIB_LDFLAGS = # libtiff 3.5.5 with the lzw patch needs libz: #TIFFLIB_LDFLAGS = -lz # The JPEG library. See above. If you want to build the jpeg # converters you must have the jpeg library already installed. # Tiff files can use JPEG compression, so the Tiff library can reference # the JPEG library. If your Tiff library references a dynamic JPEG # library, you must specify at least JPEGLIB_DIR here, or the Tiff # converters will not build. Note that your Tiff library may have the # JPEG stuff statically linked in, in which case you won't need # JPEGLIB_DIR in order to build the Tiff converters. JPEGLIB_DIR = /usr/lib JPEGHDR_DIR = /usr/include/jpeg # Netbsd: #JPEGLIB_DIR = ${LOCALBASE}/lib #JPEGHDR_DIR = ${LOCALBASE}/include # OSF, Tru64: #JPEGLIB_DIR = /usr/local1/DEC/lib #JPEGHDR_DIR = /usr/local1/DEC/include # Typical: #JPEGLIB_DIR = /usr/local/lib #JPEGHDR_DIR = /usr/local/include # Don't build JPEG stuff: #JPEGLIB_DIR = NONE #JPEGHDR_DIR = NONE # The PNG library. See above. If you want to build the PNG # converters you must have the PNG library already installed. PNGLIB_DIR = /usr/lib PNGHDR_DIR = /usr/include/png # NetBSD: #PNGLIB_DIR = $(LOCALBASE)/lib #PNGHDR_DIR = $(LOCALBASE)/include # OSF/Tru64: #PNGLIB_DIR = /usr/local1/DEC/lib #PNGHDR_DIR = /usr/local1/DEC/include # Typical: #PNGLIB_DIR = /usr/local/lib #PNGHDR_DIR = /usr/local/include # No PNG: #PNGLIB_DIR = NONE #PNGHDR_DIR = NONE # The zlib compression library. See above. You need it to build # anything that needs the PNG library (see above). If you selected # NONE for the PNG library, it doesn't matter what you specify here -- # it won't get used. ZLIB_DIR = /usr/lib ZHDR_DIR = /usr/include # And the Utah Raster Toolkit (aka URT aka RLE) library: URTHDR_DIR = $(SRCDIR)/urt URTLIB_DIR = $(SRCDIR)/urt # These are -l options to link in the network libraries. Often, these are # built into the standard C library, so this can be null. If you don't # want any network functions, make it NONE. The only thing that requires # network functions is the option in ppmtompeg to run it on multiple # computers simultaneously. NETWORKLD = # Solaris, SunOS: #NETWORKLD = -lsocket -lnsl # Don't build network functions: #DJGPP/Windows, Tru64: # (there's some minor header problem that prevents network functions from # building on Tru64 2000.10.06) #NETWORKLD = NONE VMS = #VMS: #VMS = yes # The following variables are used only by 'make install' (and the # variants of it). Paths here don't, for example, get built into any # programs. # EXCEPTION: If you used a -R $(INSTALL_LIBS) option above, # then INSTALL_LIBS gets built into your shared libraries. # File permissions for installed files. # Note that on some systems (e.g. Solaris), 'install' can't use the # mnemonic permissions - you have to use octal. # binaries (pbmmake, etc) INSTALL_PERM_BIN = 755 # u=rwx,go=rx # shared libraries (libpbm.so, etc) INSTALL_PERM_LIBD = 755 # u=rwx,go=rx # static libraries (libpbm.a, etc) INSTALL_PERM_LIBS = 644 # u=rw,go=r # header files (pbm.h, etc) INSTALL_PERM_HDR = 644 # u=rw,go=r # man pages (pbmmake.1, etc) INSTALL_PERM_MAN = 644 # u=rw,go=r # data files (pnmtopalm color maps, etc) INSTALL_PERM_DATA = 644 # u=rw,go=r # Everything gets installed relative to directory INSTALL_PREFIX. If # you're spreading Netpbm across your system, use "/". # DEC Tru64: #INSTALL_PREFIX = /usr/local1/DEC/packages/netpbm # DJGPP/Windows: #INSTALL_PREFIX = /djgpp # Typical: #INSTALL_PREFIX = /usr/local/ INSTALL_PREFIX = /usr/local/netpbm # Specify the directory where you want the executables. # If you need scripts and binaries to be in different directories, you # can set that up too. INSTALLBINARIES = $(INSTALL_PREFIX)/bin #INSTALLBINARIES = /usr/local/bin/netpbm INSTALLSCRIPTS = $(INSTALLBINARIES) # Specify the directory where you want the shared libraries # installed. For this to be effective, you must have set up this location # to be searched by your system's program executor for runtime libraries. INSTALLLIBS = $(INSTALL_PREFIX)/lib #INSTALLLIBS = /usr/local/lib/netpbm # Specify the directories that you want the man page sources, # plus the suffix you want them to have. INSTALLMANUALS1 = $(INSTALL_PREFIX)/man/man1 SUFFIXMANUALS1 = 1 INSTALLMANUALS3 = $(INSTALL_PREFIX)/man/man3 SUFFIXMANUALS3 = 3 INSTALLMANUALS5 = $(INSTALL_PREFIX)/man/man5 SUFFIXMANUALS5 = 5 # Specify the directory where you want the interface header files for # the Netpbm libraries installed. INSTALLHDRS = $(INSTALL_PREFIX)/include # Specify the directory where you want data files that the Netpbm programs # access to be installed INSTALLDATA = $(INSTALL_PREFIX)/lib #NETPBMLIBTYPE tells the kind of libraries that will get built to hold the #Netpbm library functions. The value is used only in make file tests. # "unix" means a unix-style shared library, typically named like libxyz.so.2.3 NETPBMLIBTYPE = unixshared # "static" means a unix-style static library, (like libxyz.a) #NETPBMLIBTYPE = ar # "dll" means a Windows DLL shared library #NETPBMLIBTYPE = dll # "dylib" means a Darwin/Mac OS shared library #NETPBMLIBTYPE = dylib #NETPBMLIBSUFFIX is the suffix used on whatever kind of library is #selected above. All this is used for is to construct library names. #The make files never examine the actual value. NETPBMLIBSUFFIX = so # "a" is the suffix for unix-style static libraries. Also for AIX shared # libraries. #NETPBMLIBSUFFIX = a # For HP-UX shared libraries: #NETPBMLIBSUFFIX = sl # Darwin/Mac OS shared library: #NETPBMLIBSUFFIX = dylib # Windows shared library: #NETPBMLIBSUFFIX = dll