#---------------------------------------------------------------------------- # # Makefile.global-- # global configuration for the Makefiles # # Copyright (c) 1994, Regents of the University of California # # # IDENTIFICATION # $Header: /cvsroot/pgsql/src/Attic/Makefile.global,v 1.60 1996/11/11 03:12:00 momjian Exp $ # # NOTES # This is seen by any Makefiles that include mk/postgres.mk. To # override the default setting, create a Makefile.custom in this # directory and put your defines there. (Makefile.custom is included # near the end of this file.) # # If you change any of these defines you probably have to # gmake clean; gmake # since no dependecies are created for these. (of course you can # be crafty and check what files really depend on them and just remake # those). # # Before including this file, you must set the SRCDIR variable to the # path of the top of the Postgres source tree (the directory that # contains this file). # #------------------------------------------------------------------------- ############################################################################## # # CONFIGURATION SECTION # # Following are settings pertaining to the postgres build and # installation. The most important one is obviously the name # of the port. # The name of the port. Valid choices are: # alpha - DEC Alpha AXP on OSF/1 2.0 # hpux - HP PA-RISC on HP-UX 9.0 # i386_solaris - i386 Solaris # sparc_solaris - SUN SPARC on Solaris 2.4 # sparc - SUN SPARC on SunOS 4.1.3 # ultrix4 - DEC MIPS on Ultrix 4.4 # linux - Intel x86 on Linux 1.2 and Linux ELF # (For non-ELF Linux, see LINUX_ELF below). # BSD44_derived - OSs derived from 4.4-lite BSD (NetBSD, FreeBSD) # bsdi - BSD/OS 2.0, 2.01, 2.1 # aix - IBM on AIX 3.2.5 # irix5 - SGI MIPS on IRIX 5.3 # dgux - DG/UX 5.4R3.10 # Some hooks are provided for # svr4 - Intel x86 on Intel SVR4 # next - Motorola MC68K or Intel x86 on NeXTSTEP 3.2 # but these are guaranteed not to work as of yet. # # Note that portname is defined here to be UNDEFINED to remind you # to change it in Makefile.custom. # make sure that you have no whitespaces after the PORTNAME setting # or the makefiles can get confused PORTNAME= UNKNOWN # Ignore LINUX_ELF if you're not using Linux. But if you are, and you're # compiling to a.out (which means you're using the dld dynamic loading # library), set LINUX_ELF to null in Makefile.custom. LINUX_ELF= 1 # SRCDIR specifies where the source files are. It should be defined before # we are included, but for transition purposes, we put this default here. ifdef SRCDIR MKDIR= $(SRCDIR)/mk else SRCDIR= /usr/local/pgsql/src endif # For convenience, POSTGRESDIR is where DATADIR, BINDIR, and LIBDIR # and other target destinations are rooted. Of course, each of these is # changable separately. POSTGRESDIR= /usr/local/pgsql # POSTGRESLOGIN is the login name of the user who gets special # privileges within the database. By default it is "postgres", but # you can change it to any existing login name (such as your own # login if you are compiling a private version or don't have root # access). POSTGRESLOGIN= postgres # DATADIR specifies where the postmaster expects to find its database. # This may be overridden by command line options or the PGDATA environment # variable. DATADIR= $(POSTGRESDIR)/data # Where the postgres executables live (changeable by just putting them # somewhere else and putting that directory in your shell PATH) BINDIR= $(POSTGRESDIR)/bin # Where libpq.a gets installed. You must put it where your loader will # look for it if you wish to use the -lpq convention. Otherwise you # can just put the absolute pathname to the library at the end of your # command line. LIBDIR= $(POSTGRESDIR)/lib # This is the directory where IPC utilities ipcs and ipcrm are located # IPCSDIR= /usr/bin # Where the man pages (suitable for use with "man") get installed. POSTMANDIR= $(POSTGRESDIR)/man # Where the formatted documents (e.g., the reference manual) get installed. POSTDOCDIR= $(POSTGRESDIR)/doc # Where the header files necessary to build frontend programs get installed. HEADERDIR= $(POSTGRESDIR)/include # The port to run the postmaster on POSTPORT= 5432 # NAMEDATALEN is the max length for system identifiers (e.g. table names, # attribute names, function names, etc.) # # These MUST be set here. DO NOT COMMENT THESE OUT # Setting these too high will result in excess space usage for system catalogs # Setting them too low will make the system unusable. # values between 16 and 64 that are multiples of four are recommended. # # NOTE also that databases with different NAMEDATALEN's cannot interoperate! # # THERE ARE REDUNDANT DEFINITIONS OF THESE VALUES IN config.h. # Don't change anything here without changing it there too. NAMEDATALEN = 32 # OIDNAMELEN should be set to NAMEDATALEN + sizeof(Oid) OIDNAMELEN = 36 ############################################################################## # # FEATURES # # To disable a feature, comment out the entire definition # (that is, prepend '#', don't set it to "0" or "no"). # Compile libpq++ #HAVE_Cplusplus= true # Set COPT to -O for optimization, or -g for debuggable binaries # Many people prefer -O2, and -m486 if you are using a i486 or better # Use -Werror to stop the compile when any warnings occur COPT= -O #-Werror # Commenting out CASSERT will make things go a LOT faster, but you will # also loose a lot of useful error-checking. CASSERT= true # Comment out ENFORCE_ALIGNMENT if you do NOT want unaligned access to # multi-byte types to generate a bus error. ENFORCE_ALIGNMENT= true # Comment out PROFILE to generate a profile version of the binaries #PROFILE= -p -non_shared # About the use of readline in psql: # psql does not require the GNU readline and history libraries. Hence, we # do not compile with them by default. However, there are hooks in the # program which supports the use of GNU readline and history. Should you # decide to use them, change USE_READLINE to true and change READLINE_INCDIR # and READLINE_LIBDIR to reflect the location of the readline and history # headers and libraries. # #USE_READLINE= true # directories for the readline and history libraries. READLINE_INC= -I/home/tools/include READLINE_LIB= -L/home/tools/lib -lreadline # use the following if your readline has a separate history lib #HISTORY_INC= -I/home/tools/include -I/home/tools/include/readline #HISTORY_LIB= -L/home/tools/lib -lhistory # If you plan to use Kerberos for authentication... # # Comment out KRBVERS if you do not use Kerberos. # Set KRBVERS to "4" for Kerberos v4, "5" for Kerberos v5. # XXX Edit the default Kerberos variables below! # #KRBVERS= 5 # Globally pass Kerberos file locations. # these are used in the postmaster and all libpq applications. # # Adjust KRBINCS and KRBLIBS to reflect where you have Kerberos # include files and libraries installed. # PG_KRB_SRVNAM is the name under which POSTGRES is registered in # the Kerberos database (KDC). # PG_KRB_SRVTAB is the location of the server's keytab file. # ifdef KRBVERS KRBINCS= -I/usr/athena/include KRBLIBS= -L/usr/athena/lib KRBFLAGS+= $(KRBINCS) -DPG_KRB_SRVNAM='"postgres_dbms"' ifeq ($(KRBVERS), 4) KRBFLAGS+= -DKRB4 KRBFLAGS+= -DPG_KRB_SRVTAB='"/etc/srvtab"' KRBLIBS+= -lkrb -ldes else ifeq ($(KRBVERS), 5) KRBFLAGS+= -DKRB5 KRBFLAGS+= -DPG_KRB_SRVTAB='"FILE:/krb5/srvtab.postgres"' KRBLIBS+= -lkrb5 -lcrypto -lcom_err -lisode endif endif endif # # location of Tcl/Tk headers and libraries # # Uncomment this to build the tcl utilities. # USE_TCL= true # customize these to your site's needs # TCL_INCDIR= /home/tools/include TCL_LIBDIR= /home/tools/lib TCL_LIB = -ltcl7.5 TK_INCDIR= /home/tools/include TK_LIBDIR= /home/tools/lib TK_LIB = -ltk4.1 X11_INCDIR = /usr/include X11_LIBDIR = /usr/lib X11_LIB = -lX11 -lsocket -lnsl ############################################################################## # # YACC YFLAGS = -d ############################################################################## # # AR ifneq (,$(findstring /$(PORTNAME)/, /BSD44_derived/bsdi/sparc/)) AROPT = cq else AROPT = crs endif ############################################################################## # # Installation. # # For many ports, INSTALL is overridden below. INSTALL = install RANLIB = ranlib INSTLOPTS = -c -m 444 INSTL_EXE_OPTS = -c -m 555 INSTL_LIB_OPTS = -c -m 664 objdir= obj ############################################################################## # # Customization. # # This includes your local customizations if Makefile.custom exists # in the source directory. This file doesn't exist in the original # distribution so that it doesn't get overwritten when you upgrade. ifneq ($(wildcard $(MKDIR)/../Makefile.custom), ) include $(MKDIR)/../Makefile.custom endif ############################################################################# # include port specific rules and variables. For instance: # # signal(2) handling - this is here because it affects some of # the frontend commands as well as the backend server. # # Ultrix and SunOS provide BSD signal(2) semantics by default. # # SVID2 and POSIX signal(2) semantics differ from BSD signal(2) # semantics. We can use the POSIX sigaction(2) on systems that # allow us to request restartable signals (SA_RESTART). # # Some systems don't allow restartable signals at all unless we # link to a special BSD library. # # We devoutly hope that there aren't any systems that provide # neither POSIX signals nor BSD signals. The alternative # is to do signal-handler reinstallation, which doesn't work well # at all. # # HISTORY: Before October 1996, this file included the following line: # -include $(MKDIR)/port/postgres.mk.$(PORTNAME) # Now, we instead have all the former contents of those .mk files inline # with ifeq ($(PORTNAME) ...). This makes it a little bit easier to use # Makefile.global because you don't have to set MKDIR too. It also makes # it easier to read the make files. Finally, it should help with # migration to autoconf. - Bryan # Since there are no longer separate files for each platform, much of the # commonality among the platforms ought to be factored out of the following. #---------------------------------------------------------------------- ifeq ($PORTNAME, BSD44_derived) MK_PORT= BSD44_derived # cc is gcc, but never mind about that... CC= gcc INSTALL= /usr/bin/install RANLIB= /usr/bin/ranlib # FreeBSD 2.1R with new Flex v2.5.2 in /usr/local LEX = flex LDADD+= -L/usr/local/lib -lfl # # for postgres.user.mk # CFLAGS_SL = -fpic -DPIC ifneq ($(HOSTTYPE), mips) SLSUFF= .so endif %.so: %.o $(LD) -x -r -o $(objdir)/$( $(objdir)/$(@F) %.so: %.o %$(EXPSUFF) @echo The link stage here: $(LD) -H512 -T512 -o $(objdir)/$(@F) -e _nostart \ -bI:$(LIBDIR)/postgres$(EXPSUFF) -bE:$*$(EXPSUFF) \ $*.o -lm -lc 2>/dev/null endif #--------------------------------------------------------------------------- ifeq ($(PORTNAME), alpha) MK_PORT= alpha # # for postgres.mk # CFLAGS_BE+= -DUSE_POSIX_SIGNALS # NOFIXADE disallows unaligned access. # on Ultrix and OSF/1 it invokes an explicit syscall. # on HP-UX it turns off certain compiler options. # This is defined here because a bunch of clients include tmp/c.h, # which is where the work is done on HP-UX. It only affects the # backend on Ultrix and OSF/1. ifdef ENFORCE_ALIGNMENT CFLAGS_BE+= -DNOFIXADE else CFLAGS_BE+= -DNOPRINTADE endif # use the regex library USE_REGEX = 1 # # for postgres.user.mk # SLSUFF= .so # cd into objdir so that so_locations is also in obj %.so: %.o cd $(objdir); $(LD) -shared -expect_unresolved '*' -o $(@F) $(