summaryrefslogtreecommitdiff
path: root/mk
AgeCommit message (Collapse)AuthorFilesLines
2006-07-05Flatten out recursive makes into a single re-invocation of make byjlam19-147/+221
introducing the concept of a "barrier". We separate the user-invokable targets into ones that must happen before the barrier, and ones that must happen after the barrier. The ones that happen after the barrier are run in a sub-make process. In this case, the targets that must be run after the barrier are from the "wrapper" step and beyond. We rewrite the various "flow" targets, e.g. wrapper, configure, build, etc., so that they of the right form to use the barrier target. This now completely removes the concept of PKG_PHASE from pkgsrc. It is replaced with the concept of "before" and "after" the barrier, and this state can be checked by testing for the existence of the barrier cookie file. Because we've removed most of the recursive makes, there is now nowhere to hook the PKG_ERROR_HANDLER.* commands, so remove them for now. As part of this commit, put back the logic that conditionalized the sources for the various cookie files. Because the sources are all "phony" targets, they were always run, regardless of whether or not the cookie file already existed. Now, if a cookie file exists, then that entire phase associated with that cookie file is skipped. Lastly, fix a thinko in configure/bsd.configure.mk where setting NO_CONFIGURE in a package Makefile would manage to skip the "wrapper" step altogether. Fix this by correctly noting "wrapper" and not "patch" as the preceding step to "configure".
2006-07-05Fix two bugs which prevent undo-replace from working.jlam1-3/+3
2006-07-05Only override intltool if the intltool tool was requested.jlam1-2/+4
2006-07-05Make the check-vulnerable target more self-sufficient, by moving somejlam16-100/+121
of the logic from fetch/fetch.mk into flavor/pkg/check.mk, so that check-vulnerable can be used as a source target. Make check-vulnerable a source target for every phase of the build workflow, which ensures that it is always run if the user starts a new phase from the command line. Fix the cookie-generation targets so that they don't append, only overwrite to the cookie file. This works around potential problems due to recursive makes. Move the cookie checks so that they surround the corresponding phase target. The presence of the cookie should now inform the make process to avoid doing any processing of phases that occur before the phase corresponding to the cookie.
2006-07-05Refactor configure, build, test and wrapper phases out of bsd.pkg.mkjlam16-585/+1050
and into their own directories. Also do some cleanups with build/_build and pkginstall -- we get rid of _build and simply run pkginstall as part of the "build" target. Introduce a new mechanism to handle varying directory depths under ${WRKSRC} in which we find files to override, e.g. configure, config.*, libtool, etc. OVERRIDE_DIRDEPTH is a package-settable variable that specifies how far under ${WRKSRC} the various targets should look, and it defaults to "2". We preserve the meaning of the various *_OVERRIDE variables, so if they are defined, then their values supersede the OVERRIDE_DIRDEPTH mechanism. devel/tla will need to specially set OVERRIDE_DIRDEPTH to 3 (see log for revision 1.1857 for bsd.pkg.mk -- to be done in a separate commit.
2006-07-05Since intltool is now a tool, we might as well require the latest pkgsrcjlam1-2/+2
version by default.
2006-07-05Teach the tools framework about the following new tools:jlam14-22/+173
itools, intltool, diff3, sdiff, msgmerge * Adding USE_TOOLS+=itools to a package Makefile will cause the tool-directory versions of imake, makedepend, mkdirhier and xmkmf to point to the ones from the devel/nbitools package. This change will remove the need for nbitools/buildlink3.mk, which currently does a bit of hackery to force the "right" imake tools to be used by packages that need it. * Adding USE_TOOLS+=intltool to a package Makefile will cause the local versions of intltool-* inside ${WRKSRC} to be replaced by copies from the textproc/intltool package. If "intltool" is not specified as a tool, then we create "broken" intltool-* tools in the tools directory to help highlight hidden dependencies on the intltool package. In addition, modify the tools framework so that if "perl" is not specified as a tool, then we create a "broken" perl tool in the tools directory for the same reason as for "intltool". These two changes together will remove the need for intltools/buildlink3.mk and should also catch all cases where the sources' intltools may have been silently used because perl was found on the system. * Adding USE_TOOLS+=diff3, USE_TOOLS+=sdiff, or USE_TOOLS+=msgmerge to a package Makefile will cause the corresponding tool to be pulled into the tools directory. These are convenience tools to help simplify dependencies for some packages.
2006-07-03Moved the command that generates the list of files to its own variable,rillig1-2/+4
so it can be overridden on the command line. This allows to check for example ${WRKSRC} instead of the installed files. Of course, since the variable starts with an underscore, this feature is not meant to be official.
2006-07-03After converting it to HTML format, the build log file is not neededrillig1-1/+2
anymore.
2006-07-02Reordered the variables in the interface comment so that allrillig1-8/+8
user-settable variables come first.
2006-07-02Fixed an obvious typo: .if !target$(${_WRAP_EMPTY_FILE}) contains arillig1-2/+2
dollar character before the opening parenthesis. This should really have been detected by bmake, but somehow the parser seems to be tolerant with respect to syntax errors.
2006-07-02I forgot to mention in the last commit that share/examples and share/docrillig1-1/+1
are automatically excluded from the checks, since those files are not intended to be executed directly.
2006-07-02Added a proper interface documentation. Instead of a .for loop, therillig1-9/+24
run-time for loop is used, which allows for white-space in CHECK_INTERPRETER_SKIP.
2006-07-02Fixed the documentation for SUBST_SED.*, which is not _one_ sedrillig1-2/+3
expression, but a list of sed expressions.
2006-07-01Add a script that can be used to scan for NO_BIN_ON_FTP packages usingdmcmahill1-0/+163
the cache files left by the README.html generation. This is indended to be used to monitor a ftp server, not for generating a file list for uploading to a ftp server.
2006-06-26m4 might not exist e.g. on Slackware, conditionalize it.joerg1-1/+3
2006-06-26Remove SuSE 7.3 version from SUSE_PREFER, set 10.0 as default and marksalo1-10/+5
9.1 as legacy option. SUSE 10.0 supports more architectures (i386, powerpc, x86_64) and is already required for some packages (e.g., acroread7). It will help to get more testing so we can phase out 9.1 before the next stable branch.
2006-06-25add .cz KDE mirrorjdolecek1-2/+3
2006-06-23Change the way that "\c" is processed within the msg strings: if wejlam1-1/+49
see \c, where c is anything but a legal character as defined by msgfmt-0.10.35, then replace the backslash with a '?'. Yes, this is a hack, but it works around a bug in the way that older msgfmt mis-identifies some "control" sequences. This fixes building of zh_TW.po in x11/matchbox-panel as noted in the bulk build results: http://mail-index.netbsd.org/pkgsrc-bulk/2006/06/20/0000.html While here, note in a header comment which packages' *.po files to use for regression tests whenever changes to this file are made.
2006-06-23Fix typo that would cause check-shlibs to never find missing librariesjlam1-2/+2
needed by files in a package. Noted and fix suggested by <taca> in private email.
2006-06-23Remove "apache.towardex.com" (down) and "sunsite.tus.ac.jp" (redirectstron1-3/+1
to new version) from the list of Apache master sites.
2006-06-22SUBST_STAGE.* is currently not defined by all SUBST blocks, so disablerillig1-2/+3
PKG_FAIL_REASON in that case. It didn't have an effect anyway for normal builds, since subst.mk is included after checking PKG_FAIL_REASON. Discussed with jlam.
2006-06-22Restore ls -t | grep idiom, the whole package list is too big for thejoerg1-2/+2
argument list on at least on OS.
2006-06-21When producing the list of directories containing binary packages, dodmcmahill1-3/+29
some extra processing to ensure that we have a list of unique directories. Otherwise we end up with two problems: - cache files get rebuilt all the time because they get built once for each path to the directory in question and since the path ends up in the cache, it is always declared out of date. - we end up with multiple links to the same binary package in the README.html files. Committed during the freeze becuase this is a real bug which is encountered daily.
2006-06-20Executiing "msgfmt ru" should look for "ru" and then "ru.po" forjlam1-1/+16
processing. Allow for this possiblity by falling through both names when given input files. This fixes the builds of sysutils/dfuibe_installer and sysutils/dfuife_curses noted in the bulk build results: http://mail-index.netbsd.org/pkgsrc-bulk/2006/06/20/0000.html
2006-06-20Allow for arbitrary whitespace on the line before seeing any of thejlam1-3/+3
msg* keywords. This fixes parsing es.po in multimedia/gmencoder noted in the bulk build results: http://mail-index.netbsd.org/pkgsrc-bulk/2006/06/20/0000.html
2006-06-20Use /bin/tcsh only when it exists. A minimal installtion of Linux mayminskim1-1/+3
not have it.
2006-06-20If FAILOVER_FETCH is defined, then we need the digest binary to alreadyjlam1-2/+2
be installed, so let uptodate-digest do that crazy thing it does.
2006-06-20Fix FAILOVER_FETCH usage to actually match documentation -- it'sjlam1-2/+2
supposed to be just defined/undefined, but was previously being used as non-empty/emtpy.
2006-06-18devel/tla has the GNU config scripts in a */*/* directory.rillig1-3/+3
2006-06-18Define CONFIG_{GUESS,SUB,RPATH}_OVERRIDE also whenrillig1-7/+11
OVERRIDE_GNU_CONFIG_SCRIPTS is defined.
2006-06-18Fixed wrong indentation of .if/.else/.endif.rillig1-4/+4
2006-06-18Removed duplicate definition of _PACKAGE_COOKIE.rillig1-3/+1
2006-06-17Simplified the code by reducing the number of different targets that arerillig1-20/+11
evaluated. Now the SUBST_MESSAGE is only printed once when the substitution is actually done. Before this change it had been printed also when the subst-<class> target had been invoked a second time, but the substitution didn't take place again, which had confused me. Also, converted the code to use ${WARNING_MSG} and ${STEP_MSG}.
2006-06-17Added a variable OVERRIDE_GNU_CONFIG_SCRIPTS that allows a package torillig1-2/+2
override the config.guess, config.sub and config.rpath scripts even if GNU_CONFIGURE is not defined. This is needed for devel/tla.
2006-06-16Allow packages to set a post-tools target again (which fixes recentjlam1-3/+46
lossage when building security/openpam). Utilize a tools cookie file to ensure that the post-tools target is only ever run once to avoid tricky coding requirements for the post-tools target. Also document some more of the targets.
2006-06-16It is worth a warning if a freshly installed file is not readable.rillig1-1/+6
2006-06-15Pluralize INSTALL_TEMPLATE and DEINSTALL_TEMPLATE variable names as perjlam2-18/+18
the pkglint warning: As {INSTALL,DEINSTALL}_TEMPLATE is modified using "+=", its name should indicate plural. This does make the variables a bit more suggestive of the fact that they hold lists of values.
2006-06-15Output PKG_{FAIL,SKIP}_REASON messages to standard error instead ofjlam1-7/+10
standard output. These are error or warning messages, so they shouldn't be "seen" by anything expecting the output of a "make" command to make sense. This addresses PR pkg/32239 by following the suggestions by Roland Illig.
2006-06-15Allow the standard build target to be overridden by the one generatedjlam1-2/+4
if PKG_{FAIL,SKIP}_REASON is set. This fixes the behavior when one invokes "make build" in a package that sets a fail or skip reason to stop as soon as the reason is printed.
2006-06-14Teach the tools framework about "openssl".jlam9-9/+32
2006-06-14Create DELAYED_{ERROR,WARNING}_MSG macros that can be used to outputjlam2-9/+12
error and warning messages that are picked up by the error-check target. Use them instead of using a bare ${ECHO} for more code clarity. Implemented as suggested by Roland Illig.
2006-06-14Insert cookie checks into the "real-install" and "real-package" targets,jlam2-2/+6
which are invoked in recursive make calls for the "install" and "package" targets respectvely. These recursive make calls prevent the top-level make from seeing all of the targets and computing a full dependency graph, so it becomes possible for some targets to be invoked more than once. This change passes enough information along to the recursive make calls and ensures that the source targets for the real-* targets are only invoked once.
2006-06-14Fix error with just-in-time su when installing dependencies. The codejlam1-3/+4
to install dependencies looked roughly like this: ${CAT} ${_DEPENDS_FILE} | while read type pattern dir; do cd $$dir && ${MAKE} install done In the code above, tghe recursive make invoked to install each dependency does a just-in-time su to acquire root privileges for the installation, but the su tries to get terminal settings for standard input (from the pipe) using tcgetattr(), which fails and subsequently causes su to exit with a puzzling "conversation failure" error. Rewrite the loop to look (roughly) like this: set -- `${CAT} ${_DEPENDS_FILE}` while test $# -gt 0; do type=$1; pattern=$2; dir=$3; shift 3 cd $$dir && ${MAKE} install done Note that this is potentially bad for shells with very low limits on the maximum command line length, but at least this preserves file descriptor 1 to reference the controlling tty unless the user does something weird with input redirection when invoking make.
2006-06-13Document mitshm option. Used in emulators/xbeeb package, where enabling it ↵dsainty1-0/+1
disables conventional network X support (the code doesn't support both).
2006-06-13At the point where we invoke msgfmt during the build phase, the softwarejlam1-1/+5
author has presumably given us valid *.po files, so skip performing validity checks on the *.po file. This fixes building software where the author has actually *not* produced proper *.po files, e.g. net/gtk-gnutella, where the de.po files have msgid/msgstr pairs that do not have matching numbers of format specifiers (%[a-z]).
2006-06-12Move the common make command executed in su-target into a separate makejlam1-4/+10
variable to try to get rid of potential quoting problems.
2006-06-12Be more consistent about how we're emitting errors and warnings.jlam1-6/+8
2006-06-12_DEPENDS_COOKIE is already defined in bsd.depends-vars.mk.jlam1-3/+1
2006-06-11Split out the "work" symlink creation into a separate step and add itjlam1-9/+15
as a source for the "makedirs" target. This ensures the symlink is created regardless of whether ${WRKDIR} already exists or not.