home *** CD-ROM | disk | FTP | other *** search
- #! /bin/csh -f
- # $Header: /private/postgres/newconf/RCS/Make,v 1.91 1992/08/12 03:38:10 mao Exp $
-
- if (! $?DEVELOPMENT) setenv DEVELOPMENT f
- if (! $?STRIPOBJS) setenv STRIPOBJS f
- if (! $?POSTGRESHOME) setenv POSTGRESHOME /usr/postgres
-
- #
- # CHANGE ME WHEN MAKING RELEASES !!!!!!!!!!!!!
- #
-
- set ship=1
-
- if ($?SPRITE_OS) then
- setenv SHELL /bin/sh
- set MAKEF = "/postdev/choi/make -f -"
- set MAKE = "/postdev/choi/make -f -"
- else if (`hostname` == "hermes.Berkeley.EDU") then
- set MAKE = "/usr/local/gmake -f -"
- else
- set MAKE = "make -f -"
- endif
-
- set accessdeps =
- set commanddeps =
- set executordeps =
- set libdeps =
- set maindeps =
- set parserdeps =
- set plannerdeps =
- set portdeps =
- set rewritedeps =
- set rulesdeps =
- set storagedeps =
- set tcopdeps =
- set utilsdeps =
-
- set defaultrules = "defaults.mk"
- set ext = "o"
-
- set targs =
- set defs =
- set opts =
-
- set ALL = (inh postgres support postmaster )
- set DFLAGS =
- set SFLAG =
- set PFLAG =
-
- # parse arg list
- foreach i ( $argv )
- switch ($i)
- case "-s": # use dependencies
- set accessdeps = DEPS/ACCESS.d
- set commanddeps = DEPS/COMMANDS.d
- set executordeps = DEPS/EXECUTOR.d
- set libdeps = DEPS/LIB.d
- set maindeps = DEPS/MAIN.d
- set parserdeps = DEPS/PARSER.d
- set plannerdeps = DEPS/PLANNER.d
- set portdeps = DEPS/PORT.d
- set rewritedeps = DEPS/REWRITE.d
- set rulesdeps = DEPS/RULES.d
- set storagedeps = DEPS/STORAGE.d
- set tcopdeps = DEPS/TCOP.d
- set utilsdeps = DEPS/UTIL.d
- set SFLAG = "-s"
- breaksw
- case "-depend": # generate dependencies for targets
- set defaultrules = "depends.mk"
- set ext = "d"
- breaksw
- case "-development": # set development environ variable
- setenv DEVELOPMENT t
- breaksw
- case "-strip": # set strip objects environ variable
- setenv STRIPOBJS t
- breaksw
- case "-print": # print the makefile instead of executing it
- set MAKE = $cwd/debug
- breaksw
- case "-debug": # walk thru makefile, printing out the targets
- set MAKE = ( $MAKE -n )
- breaksw
- case "-silent": # simulate the "@" construct
- set MAKE = ( $MAKE -s )
- breaksw
- case "-touch": # touch targets instead of making them
- set MAKE = ( $MAKE -t )
- breaksw
- case "-parallel":
- set PARALLELMAKE
- set PFLAG = "-parallel"
- breaksw
- case "-d*":
- set defs = ( $defs `echo $i | sed -e s/-d//` )
- # set DFLAGS = ( $DFLAGS $i )
- set MAKE = ( $MAKE `echo $i | sed -e s/-d//` )
- breaksw
- case "-*":
- set opts = ( $opts $i )
- set MAKE = ( $MAKE $i )
- breaksw
- default:
- set targs = ( $targs $i )
- breaksw
- endsw
- end
-
- #
- # build the targets the user asked for
- # organized according to the most frequently used targets,
- # modules (parser,planner, etc. ) are listed alphabetically in part 2
- #
- foreach i ( $targs )
- #
- # part 1 - everybody's favorite targets
- #
- switch ( $i )
- case "quick-link": # assume all big .o's are up to date
- cat config.mk postgres.mk $defaultrules \
- | ( cd .. ; $MAKE POSTGRES.$ext )
- breaksw
- case "alltests":
- pushd $POSTGRESHOME/test
- sh ./alltests.sh
- popd
- breaksw
- case "postgres": # the postgres binary in the obj dir
- if ($?PARALLELMAKE) then
- foreach i (access command executor lib main parser planner \
- port rewrite rules storage tcop utils)
- echo Make $i in parallel;
- Make -parallel $i &
- end
- wait
- echo parallel phase done
- else
- endif
- cat config.mk \
- FILES/{main,commands,executor,parser}.mkf \
- FILES/{planner,rewrite,rules,tcop,inh}.mkf \
- FILES/{access,libraries,storage,utilities}.mkf \
- FILES/bootstrap.mkf \
- port.mk postgres.mk \
- $defaultrules \
- $accessdeps $commanddeps $executordeps $libdeps \
- $maindeps $parserdeps $plannerdeps $rewritedeps $portdeps \
- $rulesdeps $storagedeps $tcopdeps $utilsdeps \
- | (cd ..; $MAKE POSTGRES.$ext)
- breaksw
- case "postpure": # the "pure" postgres binary in the obj dir
- if ($?PARALLELMAKE) then
- foreach i (access command executor lib main parser planner \
- port rewrite rules storage tcop utils)
- echo Make $i in parallel;
- Make -parallel $i &
- end
- wait
- echo parallel phase done
- else
- endif
- cat config.mk \
- FILES/{main,commands,executor,parser}.mkf \
- FILES/{planner,rewrite,rules,tcop,inh}.mkf \
- FILES/{access,libraries,storage,utilities}.mkf \
- FILES/bootstrap.mkf \
- port.mk postgres.mk \
- $defaultrules \
- $accessdeps $commanddeps $executordeps $libdeps \
- $maindeps $parserdeps $plannerdeps $rewritedeps $portdeps \
- $rulesdeps $storagedeps $tcopdeps $utilsdeps \
- | (cd ..; $MAKE POSTPURE.$ext)
- breaksw
- case "inh": # the nodes stuff, use before postgres
- cat config.mk FILES/inh.mkf inh.mk $defaultrules \
- | (cd ..; $MAKE allobjs)
- breaksw
- #
- # part 2 - modules within postgres
- #
- case "access": # the access methods module
- cat config.mk \
- FILES/access.mkf postgres.mk $defaultrules $accessdeps \
- | (cd ..; $MAKE ACCESS.$ext)
- breaksw
- case "command": # the various utilities commands
- cat config.mk \
- FILES/commands.mkf postgres.mk $defaultrules $commanddeps \
- | (cd ..; $MAKE COMMANDS.$ext)
- breaksw
- case "executor": # the executor module
- cat config.mk \
- FILES/executor.mkf postgres.mk $defaultrules $executordeps \
- | (cd ..; $MAKE EXECUTOR.$ext)
- breaksw
- case "lib": # various lowlevel libraries
- cat config.mk \
- FILES/libraries.mkf postgres.mk $defaultrules $libdeps \
- | (cd ..; $MAKE LIB.$ext)
- breaksw
- case "main": # main()
- cat config.mk \
- FILES/main.mkf postgres.mk $defaultrules $maindeps \
- | (cd ..; $MAKE MAIN.$ext)
- breaksw
- case "parser": # the parser module
- cat config.mk \
- FILES/parser.mkf postgres.mk $defaultrules $parserdeps \
- | (cd ..; $MAKE PARSER.$ext)
- breaksw
- case "planner": # the planner module
- cat config.mk \
- FILES/planner.mkf postgres.mk $defaultrules $plannerdeps \
- | (cd ..; $MAKE PLANNER.$ext)
- breaksw
- case "port": # the port specific module
- cat config.mk \
- port.mk postgres.mk $defaultrules $portdeps \
- | (cd ..; $MAKE PORT.$ext)
- breaksw
- case "rewrite": # the rewrite rules module
- cat config.mk FILES/rewrite.mkf \
- postgres.mk $defaultrules $rewritedeps \
- | (cd ..; $MAKE REWRITE.$ext)
- breaksw
- case "rules": # the tuple level rules module
- cat config.mk FILES/rules.mkf \
- postgres.mk $defaultrules $rulesdeps \
- | (cd ..; $MAKE RULES.$ext)
- breaksw
- case "storage": # the storage manager module
- cat config.mk FILES/storage.mkf \
- postgres.mk $defaultrules $storagedeps \
- | (cd ..; $MAKE STORAGE.$ext)
- breaksw
- case "tcop": # the traffic cop
- cat config.mk FILES/tcop.mkf \
- postgres.mk $defaultrules $tcopdeps \
- | (cd ..; $MAKE TCOP.$ext)
- breaksw
- case "utils": # misc utility code
- cat config.mk \
- FILES/utilities.mkf postgres.mk $defaultrules $utilsdeps \
- | (cd ..; $MAKE UTIL.$ext)
- breaksw
- #"
- #" Part 3 - utility type targets (not actually for compile/link cycle
- #"
- case "help":
- egrep '(case \")' Make
- breaksw
- case "links": # links from obj to src directory
- cat config.mk misc.mk | $MAKE links
- breaksw
- case "missing":
- cat config.mk \
- support.mk $defaultrules | $MAKE missing
- breaksw
- case "newfiles": # files that you haven't checked out
- cat config.mk misc.mk | $MAKE newfiles
- breaksw
- case "getfiles":
- cat config.mk misc.mk | $MAKE newfiles_co
- breaksw
- case "newfiles_co": # Make newfiles + check out
- cat config.mk misc.mk | $MAKE newfiles_co
- breaksw
- case "obsfiles": # files you have that I don't believe exist
- cat config.mk misc.mk | $MAKE obsfiles
- breaksw
- #"
- #" Part 4a - support programs (not often recompiled )
- #"
- case "bkifiles": # local.bki and dbdb.bki, needed by createdb
- cat config.mk FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE bkifiles)
- breaksw
- case "rmbkifiles": # removes local.bki and dbdb.bki
- cat config.mk FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE rmbkifiles)
- breaksw
- case "cinterface": # library against which to link support targets
- cat config.mk \
- FILES/{access,libraries,storage,utilities,inh}.mkf \
- port.mk support.mk cinterface.mk $defaultrules \
- | (cd ..; $MAKE cinterface)
- breaksw
- case "pg_uid": # determines postgres' uid
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE pg_uid)
- breaksw
- case "pg_version": # database creation utility
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE pg_version)
- breaksw
- case "createdb":
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE createdb)
- breaksw
- breaksw
- case "destroydb":
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE destroydb)
- breaksw
- case "libpq":
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd ..; $MAKE libpq)
- breaksw
- case "monitor": # the terminal monitor
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd .. ; $MAKE monitor)
- breaksw
- case "pagedoc": # the postgres page doctor
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd .. ; $MAKE pagedoc)
- breaksw
- case "shmemdoc": # the postgres shared memory doctor
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd .. ; $MAKE shmemdoc)
- breaksw
- case "xexemon": # the X executor monitor
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd .. ; $MAKE xexemon)
- breaksw
- case "postmaster": # make me if you want multi-user
- cat config.mk \
- FILES/{access,libraries,storage,utilities,inh}.mkf \
- port.mk support.mk cinterface.mk postmaster.mk \
- | (cd ..; $MAKE postmasterlinks)
- cat config.mk \
- FILES/{access,libraries,storage,utilities,inh}.mkf \
- port.mk support.mk cinterface.mk postmaster.mk \
- | (cd ..; $MAKE postmaster)
- breaksw
- case "puremaster": # make me if you want multi-user
- cat config.mk \
- FILES/{access,libraries,storage,utilities,inh}.mkf \
- port.mk support.mk cinterface.mk postmaster.mk $defaultrules \
- | (cd ..; $MAKE postmasterlinks)
- cat config.mk \
- FILES/{access,libraries,storage,utilities,inh}.mkf \
- port.mk support.mk cinterface.mk postmaster.mk $defaultrules \
- | (cd ..; $MAKE puremaster)
- breaksw
- case "puremonitor": # the terminal monitor
- cat config.mk \
- FILES/support.mkf support.mk $defaultrules \
- | (cd .. ; $MAKE puremonitor)
- breaksw
- case "support": # all the support targets
- cat config.mk FILES/support.mkf support.mk cinterface.mk \
- $defaultrules \
- | (cd ..; $MAKE support POSTGRESBIN=$POSTGRESHOME/bin )
- breaksw
- case "vacuum":
- cat config.mk \
- FILES/support.mkf support.mk cinterface.mk $defaultrules \
- | (cd ..; $MAKE support POSTGRESBIN=$POSTGRESHOME/bin)
- breaksw
- case "pg_id":
- cat config.mk \
- FILES/support.mkf support.mk cinterface.mk $defaultrules \
- | (cd ..; $MAKE pg_id)
- break;
- case "everything":
- foreach i ($ALL)
- csh Make $PFLAG $DFLAGS $SFLAG $opts $i
- end
- if (! -e everything.stat) then
- touch everything.stat
- chmod 444 everything.stat
- endif
- breaksw
- case "install":
- if ($ship == 1) then
- if (! -e ./newport.stat) then
- ./newport
- endif
- endif
- cp config.mk install$$.mk
- chmod 777 install$$.mk
- echo 'install:' >> install$$.mk
- echo ' @ sh install.sh $(TREE) $(OD) $(PORTNAME) ' $ship "$MAKE" >>install$$.mk
- if ($?SPRITE_OS) then
- $MAKEF install < install$$.mk
- else
- $MAKE install < install$$.mk
- endif
- /bin/rm -f install$$.mk
- breaksw
- #"
- #" Part 4b - support programs (not often recompiled )
- #"
- case "sample":
- cat config.mk ../sample/Makefile.raw >! ../sample/Makefile
- breaksw
- case "toptest":
- cat config.mk ../test/Makefile.raw >! ../test/Makefile
- breaksw
- #
- # Part 5 : people's personal stuff
- # it might be argued that this should not be here
- #
- case "test":
- cat config.mk \
- FILES/{commands,executor,parser}.mkf \
- FILES/{planner,rules,inh}.mkf \
- FILES/{access,libraries,storage,utilities}.mkf \
- FILES/{tcop,test}.mkf \
- port.mk test.mk $defaultrules \
- | (cd ..; $MAKE test)
- breaksw
- case "dumpbpages":
- cat FILES/test.mkf config.mk $defaultrules test.mk \
- | (cd ..; $MAKE dumpbpages)
- breaksw
- case "rtdump":
- cat FILES/test.mkf config.mk $defaultrules test.mk \
- | (cd ..; $MAKE rtdump)
- breaksw
- case "testbtree":
- cat FILES/test.mkf config.mk $defaultrules test.mk \
- | (cd ..; $MAKE testbtree)
- breaksw
- case "ifiles": # intermediate .i files (for debugging)
- cat config.mk FILES/inh.mkf inh.mk \
- | (cd ..; $MAKE genifiles)
- breaksw
- case "rmifiles": # remove .i files (for debugging)
- cat config.mk FILES/inh.mkf inh.mk \
- | (cd ..; $MAKE rmifiles)
- breaksw
- case "checkout/*": # checkout files from checkout script
- set script=$i:t
- set rmscript=0
- if (! -e $script) then
- if (-e RCS/$script,v) then
- echo using RCS/$script,v ...
- co $script >& /dev/null
- set rmscript=1
- else
- echo neither $script or RCS/$script,v exists
- exit 1
- endif
- endif
- cat config.mk $script | (cd ..; $MAKE checkout)
- if ($rmscript == 1) then
- rm -f $script
- endif
- breaksw
- #
- # Part 5a : cim's stuff.
- # ignore this if you are not cim.
- #
- case "cim-*": # do cim's stuff
- cat config.mk $HOME/conf/cim.mk | (cd ..; $MAKE $i)
- breaksw
- case "hdep/*": # find header file dependencies
- setenv HFILE `echo $i | sed -e 's/^[a-zA-Z]*\///'`
- cat config.mk $HOME/conf/cim.mk | (cd ..; $MAKE hdep)
- breaksw
- case "execnodes-ah": # execnodes.a.h file
- cat config.mk FILES/inh.mkf inh.mk \
- | (cd ..; $MAKE execnodes-ah)
- breaksw
- # 5b. Adam's support stuff
- # someone besides adam might find this useful
- case "TAGS":
- echo Making TAGS file
- (cd ../src; etags */*.[ch] */*/*.[ch])
- breaksw
- case "usefulstuff":
- echo Making file list + other useful stuff
- (cd ../src; find . -name "*.[ch]" -print > file.list; \
- grep -n elog `cat file.list` > elog.hit; \
- grep -n \#define `cat file.list` > macro.def; \
- etags `cat file.list` )
- breaksw
- #
- # Part 6 : default target
- #
- default: # makes a specific pathname
- cat config.mk \
- FILES/{commands,executor,parser}.mkf \
- FILES/{planner,rules,tcop,inh}.mkf \
- FILES/{access,libraries,storage,utilities}.mkf \
- port.mk postgres.mk $defaultrules \
- $accessdeps $commanddeps $executordeps $libdeps $maindeps \
- $parserdeps $plannerdeps $portdeps $rulesdeps $storagedeps \
- $tcopdeps $utilsdeps \
- | (cd ..; $MAKE $i)
- breaksw
- endsw
- end
-
- if (! $?PARALLELMAKE) echo "done"
-