summaryrefslogtreecommitdiff
path: root/mk/tools
AgeCommit message (Collapse)AuthorFilesLines
2006-08-06Handle the share/pkgconfig directory where platform-independent packagesjmmv1-2/+2
(e.g. gtk-doc 1.6) want to install .pc files.
2006-07-25Move barrier to just after the depends phase. This allows both thejlam1-5/+4
"tools" and "wrapper" phases to be able to expect all the dependencies to be installed already.
2006-07-21Rearrange sequence so that "wrapper" occurs between "tools" andjlam1-1/+5
"extract". This allows all user-definable targets (pre-*, do-*, post-*) to have access to the wrapper scripts.
2006-07-13Add DIGEST to the variables defined by default.jlam1-1/+2
2006-07-13* Add a new stage "bootstrap-depends" that happens before all otherjlam3-2/+87
stages, and that installs dependencies listed in BOOTSTRAP_DEPENDS. The bootstrap-depends step works just like the normal depends step and honors the value of DEPENDS_TARGET. It's now possible to add dependencies solely to facilitate fetching the distfiles, e.g. BOOTSTRAP_DEPENDS+= curl-[0-9]*:../../www/curl * Teach the tools framework about ":bootstrap" as a tools modifier which indicates the tool should be added as a dependency via BOOTSTRAP_DEPENDS. * Add "digest" to the tools framework. * Use USE_TOOLS+=digest:bootstrap to force pkgsrc to install digest before anything else. Get rid of unused "uptodate-digest" target and related digest version-checking code. * Finish the refactoring work: split checksum-related code out of bsd.pkg.mk and into pkgsrc/mk/checksum and replace the "checksum" target command list with a script that does all the real work. * Make DIGEST_ALGORITHMS and PATCH_DIGEST_ALGORITHM into private variables by prepending them with an underscore. Also, rename _PATCH_DIGEST_ALGORITHM to _PATCH_DIGEST_ALGORITHMS and adjust the makepatchsum target to allow that variable to contain a list of algorithms, all of which are used when creating the patch checksums for ${DISTINFO_FILE}.
2006-07-10Back out revision 1.172 of mk/tools/replace.mk -- we never want tojlam2-6/+6
allow IMAKE to be set by anything other than the tools framework. Modify the IRIX files so that the native imake is listed as a built-in tool in the case where X11_TYPE is "native". Also, move the include of tools/default.mk a bit lower in bsd.prefs.mk so that tools.${OPSYS}.mk files can use the value of X11_TYPE. This should properly set and point IMAKE to the right binary on IRIX without destroying the configuration for platforms where IMAKE was not explicitly set, i.e. every non-IRIX platform.
2006-07-10The wrapper for perl silently failed, giving no hint thatrillig2-3/+11
USE_TOOLS+=perl was necessary. Therefore, added a new class of tools, TOOLS_FAIL, which records the call in a .warnings file, which is later printed to the user. At least when the tool is first called in the "configure" phase; I didn't test other phases.
2006-07-08make sure the IMAKE definition, if set, is used in case X11_TYPE is nativeschwarz1-2/+5
2006-07-07Rename <phase>_COOKIE variables to _COOKIE.<phase>. These are privatejlam1-10/+10
variables so there are no user-visible changes. This change just makes it a little easier to write for loops.
2006-07-06The cookie files are indirectly made using *-cookie targets, so verifyjlam1-1/+2
that they are never being created more than once by inserting a check into the *-cookie targets.
2006-07-05Flatten out recursive makes into a single re-invocation of make byjlam1-4/+9
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-05Only override intltool if the intltool tool was requested.jlam1-2/+4
2006-07-05Make the check-vulnerable target more self-sufficient, by moving somejlam1-7/+7
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-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:jlam12-18/+165
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-06-26m4 might not exist e.g. on Slackware, conditionalize it.joerg1-1/+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-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-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-14Teach the tools framework about "openssl".jlam9-9/+32
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-09Introduce the capability to gather all the warnings and errors thatjlam1-1/+2
are generated for a target and output them all at once at the conclusion of the target's invocation. The implementation is in bsd.pkg.error.mk, which defines a macro target "error-check" that will print out any non-empty warning and error files in ${WARNING_DIR} and ${ERROR_DIR} and exit appropriately if there were errors. Convert some targets that were just long sequences of ${ERROR_MSG} or ${WARNING_MSG} within a single shell statement to use the new delayed error output via error-check. Modify the compiler "fail" wrappers for C++ and Fortran to be less verbose during invocation. Instead collect the warnings and only print them at the end of the completed phase, e.g. after "configure" and/or "build" completes.
2006-06-06Stop supporting user-specified definition for IMAKE in /etc/mk.conf --jlam1-7/+1
it's now all handled exclusively by the tools framework.
2006-06-06Separate out the part of bsd.tools.mk that actually created the toolsjlam3-163/+233
into a new file pkgsrc/mk/tools/create.mk. This leaves bsd.tools.mk as a file that pulls in all of the other ones. Also move the tools-related targets from bsd.pkg.mk into bsd.tools.mk. The tools cookie file has been removed, as well as hooks for {pre,do,post}-tools. Instead, there is now only a single public target "tools" which may be invoked. Invoking "tools" will always cause all of the tools in ${TOOLS_DIR} to be created. The "tools" step has been moved and is now just after the "depends" step and before sources are extracted. This is the earliest place where the "tools" step can be taken, and it allows the created tools to be used in all steps/phases after it, starting with "extract". As a consequence, we should just invoke tools by their bare names in targets, e.g. awk, sed, patch, etc., instead of with the ${VARIABLE} names, e.g. ${AWK}, ${SED}, ${PATCH}, etc.
2006-06-05Minor fix for last commit... in the case where msgstr is just thejlam1-10/+4
empty string (because no translation has yet been made), it's okay to have mismatching "\n" in the msgid and msgstr texts. This should fix PR pkg/33645 by Carl Brewer.
2006-06-04Extend msgfmt.sh script to handle the following cases:jlam1-15/+77
(1) "msgstr" not followed by any string (GNU extension), e.g. msgid "foo" msgstr "bar" (2) "\n" mismatch between msgid and msgstr, e.g. msgid "foo\n" msgstr "bar" This fixes .po compilation problems in www/epiphany and multimedia/gnome2-media.
2006-05-21Add back "gsoelim" as a NetBSD tool since it supports "-I directory".jlam1-2/+3
Mark this as merely "GNUish" in the comment so that we know it's not really GNU soelim.
2006-05-21NetBSD actually doesn't have GNU soelim, but rather BSD soelim.jlam1-2/+1
2006-05-21Teach the tools framework about "groff" as a tool.jlam5-7/+21
2006-05-20Modify msgfmt.sh to make the following changes when filtering *.po files:jlam1-18/+27
msgid -> msgid "" msgid"..." -> msgid "..." msgstr -> msgstr "" msgstr"..." -> msgstr "..." The filtered *.po files can then be processed by msgfmt<=0.10.35. These changes workaround bugs in *.po files in software of the "all the world runs Linux" variety where the software author either willfully or stupidly can't follow the format for *.po files described in section 2.2 of the gettext info manual and, in addition, makes lame excuses when confronted with the evidence. This closes PR pkg/33506 by Ben Collver.
2006-05-20We can simplify MSGSTRN_RE because we already catch the msgstr[0] andjlam1-2/+2
msgstr[1] cases earlier.
2006-05-20Rename ORE to OBSOLETE_RE for more clarity in the variable name.jlam1-16/+16
2006-05-20Restore "unnecessary" variable... sometimes we use named constants forjlam1-2/+3
documentation/readability purposes...
2006-05-10Don't let this program get confused just because there is no white-spacerillig1-3/+2
between msgstr and the following string. The bug showed off at icewm-1.2.25, file po/tr.po, line 774. While at it, removed an unnecessary variable.
2006-04-15There are two things that we need to keep track of:jlam1-8/+13
(1) whether or not the built-in msgfmt supports msgid_plural, and thus whether we need to use the msgfmt.sh script (_TOOLS_USE_MSGFMT_SH), and (2) whether or not we need to use the pkgsrc version of msgfmt (_TOOLS_USE_PKGSRC.msgfmt) If we truly don't need to use msgfmt.sh, then never invoke it. This is the case on NetBSD>=3.x. This should fix the problem with building the *.po files in fonts/fontforge on NetBSD-current.
2006-04-15Reorder the loop so that we can never get into an infinite loop. Wejlam1-10/+6
now pass every line we don't need to process directly through to msgfmt. This fixes building pt_BR.po in libgnomedb where all of the lines end with "^M" and this script wasn't properly detecting a blank line as a result.
2006-04-15Modify the loop so that the statements and comment lines can bejlam1-13/+27
interspersed.
2006-04-15Replace a re-used regular expression with a constant.jlam1-8/+10
2006-04-14Drop all msgstr[N] translations besides msgstr[0] and msgstr[1] becausejlam1-1/+14
those translations can have no corresponding msgid anchor in the old PO file format. This allows all of the *.po files in gnome-vfs2 to build correctly into *.mo files.
2006-04-14Whitespace changes for proper indentation.jlam1-99/+103
2006-04-14Remove debugging code so that we actually invoke msgfmt.jlam1-4/+1
2006-04-14Avoid using the awk input loop and use our own while loop in a BEGINjlam1-64/+70
statement. While here fix processing of *.po files containing obsolete statements by preserving them for msgfmt to handle. Also use a few more constants to make the code more maintainable and readable.
2006-04-14Support a --debug flag that dumps the output of the awk script to ajlam1-2/+16
*.debug file.
2006-04-14Now that I understand why we strip "#~" from the head of lines, stripjlam1-3/+10
it consistently whenever we read a new line of input throughout the script. Note that this was actually broken in the original msgfmt.pl script as well.
2006-04-14Use the correct cat command.jlam2-4/+5
2006-04-14Document the puzzling line that strips "#~" from the start of lines.jlam1-2/+6
Explanation provided by jmmv in private email.
2006-04-14Add TNF copyright to file as suggested by jmmv in private email.jlam1-1/+36
2006-04-13Do a bit more error-checking -- if no input file is specified, just runjlam1-1/+3
the msgfmt command to get the right error message and return code.