summaryrefslogtreecommitdiff
path: root/mk/configure
AgeCommit message (Collapse)AuthorFilesLines
2007-11-01Moved the pre-configure-checks-hook below do-configure-pre-hook, so thatrillig1-2/+2
REPLACE_INTERPRETER takes place before the portability check. Shell scripts that will use bash anyway do not need to be checked for portability problems.
2007-08-01Begin adding some of the basic, non-intrusive pieces of thejoerg1-1/+4
cross-compile support. - NATIVE_MACHINE_GNU_ARCH, NATIVE_LOWER_ARCH, NATIVE_MACHINE_ARCH, NATIVE_MACHINE_PLATFORM and NATIVE_MACHINE_GNU_PLATFORM work like the counterpars without NATIVE_ prefix. Expansion of NATIVE_LOWER_ARCH and NATIVE_MACHINE_ARCH is enforced early, so that MACHINE_ARCH can be overriden in mk.conf to specify the target architecture. - Provide a default of NO for USE_CROSS_COMPILE. This will be the main switch to activate cross-compiling and adding it now makes it possible to merge more of the patches for specific packages. - Set --build and --host when cross-compiling, the former using the just added variable NATIVE_MACHINE_GNU_PLATFORM. Supported-by: Google SoC 2007 Looks good: jlam@
2007-07-28Add REPLACE_KSH similiar to REPLACE_BASH and REPLACE_SH as thejoerg1-1/+10
CHECK_INTERPRETER bulk build has shown a surprising number of packages using it.
2007-07-25Documented PKGCONFIG_OVERRIDE and PKGCONFIG_OVERRIDE_STAGE.rillig1-1/+12
2007-07-12No longer pass install_sh in the environment to GNU configure scripts.jlam4-9/+61
We fix GNU configure script stupidity by directly replacing the stock install-sh script provided by the software with the BSD install-compatible sysutils/install-sh script. A new package-settable variable comes to life: INSTALL_SH_OVERRIDE is a list of files relative to WRKSRC which should be overridden by the install-sh script from sysutils/install-sh. If not defined or set to "no", then no files are overridden. Possible values: no, defined, undefined. Default value: defined when GNU_CONFIGURE is defined, undefined otherwise. Get rid of the install_sh tool, which is no longer needed.
2007-06-04For GNU-style configure scripts, the environment variable install_shrillig2-3/+8
must point to a shell script (as the name implies), not to a binary.
2007-03-15For all those who are interested in the inner workings of pkgsrc, thererillig2-2/+15
is a new target "show-all" that fits to the existing "debug", "show-tools", "show-vars" targets. It prints a list of the variables that make up the public interface to pkgsrc. Running this target is especially useful if you want to do some things, you know that they must have been implemented but you don't know what it is called. It also shows the "class" of a variable (user-defined, package-defined, system-defined).
2007-03-15Moved the definition of CONFIG_SHELL from gnu-configure.mk to configure.mk.rillig2-6/+11
Improved the documentation.
2007-03-08Better documentation.rillig1-7/+8
2007-03-07Renamed the configure-cookie target to _configure-cookie.rillig2-14/+9
2007-03-01Update SCRIPTS_ENV description.wiz1-3/+3
2007-01-08Added the variable CONFIG_SHELL_FLAGS that is intended to be set to -xrillig1-2/+20
on the command line when nothing else helps. Added the configure-help target that runs configure --help.
2007-01-07Documented OVERRIDE_GNU_CONFIG_SCRIPTS.rillig1-1/+13
2006-11-09Moved the portability checks from the configure/ directory to checks/,rillig3-165/+6
since according to the comment in check/bsd.check.mk, they belong there. Added a new check for all C and C++ header files to make sure they don't contain strings like ${prefix} or ${exec_prefix}, which is currently a problem with sysutils/dbus and has been noticed in PR 35019. This check is disabled by default since I don't know anything about possible false positives, but I plan to enable it for PKG_DEVELOPERs after some testing. Added two names for hooks that are placed in the configure and in the build phase. Now the checks look more like becoming something one could call a framework, sharing a common structure and a documented interface.
2006-11-05Normalized the way test(1) is used. Since I have no idea whether ${TEST}rillig2-9/+9
or [] is better, I have used [ to keep the code shorter. Noticed by wiz.
2006-11-05The config.guess, config.sub and libtool files should also berillig2-8/+8
overwritten when the package-provided files are (possibly dead) symlinks. Since on Mac OS X, ls(1) does not return the status I expected, I investigated a little in the available options of test(1), and found that the "-h" option should be quite portable. So let's try that instead. This fixes PR 34865.
2006-10-29Added a "see also" entry.rillig1-1/+4
2006-10-26PKG_DEVELOPER is a defined check; it doesn't need to equal the string "yes".tv1-2/+2
2006-10-23Added the CHECK_PORTABILITY_SKIP variable that may be defined by packagesrillig2-7/+18
to exclude some files from the portability checks.
2006-10-21If ${WRKSRC} does not yet exist in the configure phase, skip therillig1-1/+2
portability checks. Needed for the emulators/compat?? packages.
2006-10-21Documented a not-so-easily-fixed bug that occurs when stripping commentsrillig1-1/+3
off a line.
2006-10-12Warnings must only be prefixed by a warnings heading, not an errorrillig1-6/+13
heading.
2006-10-12Portability checks, version two.rillig3-31/+107
The actual check has moved into a shell file to allow for nice-looking code. Instead of only the configure scripts, it scans all files whose first line matches "#!*/bin/sh". Therefore the check is run no matter if HAS_CONFIGURE is set or not. Added a warning (not an error) for every use of $RANDOM that is not combined with $$, the process ID. $RANDOM is only implemented by bash and some versions of the ksh.
2006-10-05If a word in a configure script is "#", stop scanning that line forrillig1-1/+3
"test ==".
2006-10-05Replaced "test -f" with "ls". That way, broken symbolic links are alsorillig2-4/+4
replaced with the pkgsrc versions of libtool, config.guess and others.
2006-10-05It's SKIP_PORTABILITY_CHECK, not SKIP_PORTABILITY_CHECKS.rillig1-2/+2
2006-10-02Some fixes:rillig1-6/+2
- PKG_DEVELOPER may be undefined, meaning "no". - Removed unused variables. - Removed a trailing empty line.
2006-10-02Added a new compile-time check that detects the usage of the "=="rillig2-1/+67
operator in test(1). It is enabled by default when PKG_DEVELOPER is selected. In my private bulk build of about 3700 packages, there had been no false positive.
2006-09-19Bugfix: In the #! interpreter lines, allow white-space behind the #!.rillig1-2/+2
This fixes the build for audio/madman. Before, only some of the interpreters had been replaced.
2006-08-03Add "itlocaledir" to the list of directory patterns to replace.salo1-1/+2
From Gilles Dauphin via PR pkg/34103
2006-07-27The intention behind REPLACE_BASH was to make replacing /bin/sh withrillig1-2/+2
${BASH} easy, so the pattern that is replaced is now .*sh instead .*bash.
2006-07-27After auditing all the packages the ensure that they never invoke thejlam2-4/+4
compiler toolchain until the configure stage, move the "wrapper" stage back to between "patch" and "configure". This makes "make extract NO_DEPENDS=" work again for all packages.
2006-07-23The proper phase to run just before "configure" is "patch", notjlam1-2/+2
"wrapper", after "wrapper" was moved to be between "tools" and "extract". This should fix PR pkg/34061.
2006-07-22Modify the barrier so that we always invoke the recursive make processjlam2-4/+4
when passing through the barrier. This ensures the PATH (passed via PKGSRC_MAKE_ENV) is correctly set for all phases after the barrier. This fixes a bug in "interactive" pkgsrc use, where if you have no work directory and type "make build && make install", then the "install" step does not have a PATH set to include all the wrapper and tools directories.
2006-07-21Rearrange sequence so that "wrapper" occurs between "tools" andjlam1-2/+2
"extract". This allows all user-definable targets (pre-*, do-*, post-*) to have access to the wrapper scripts.
2006-07-20Change last instance of _REPLACE.* to REPLACE.*. Remove specialjlam1-11/+1
_REPLACE.* handling from replace-interpreter.mk.
2006-07-19Handle case where {SH,}LIBTOOL_OVERRIDE is empty for shells that don'tjlam1-3/+7
understand empty lists in for loops. Addresses PR pkg/34042.
2006-07-19Drop support for LTCONFIG_OVERRIDE. For quite a long time, pkgsrcjlam1-36/+4
had actually been ignoring LTCONFIG_OVERRIDE anyway and just using the default LIBTOOL_OVERRIDE to replace libtool scripts in packages. This just formalizes the fact that LTCONFIG_OVERRIDE is not used meaningfully by pkgsrc.
2006-07-15Split the variable BUILD_DEFS into those that are defined by packagesrillig1-2/+2
and those that are defined by the infrastructure (_BUILD_DEFS). This allows the build-defs-message target to be moved to the end of bsd.pkg.mk. Now it prints the correct result even in unprivileged builds, which had been wrong due to the order in which the files have been included. For example, ${UNPRIVILEGED_USER} was displayed as (not defined) although its value was defined, which could be checked with "bmake show-var". Tested with one package that _does_ define BUILD_DEFS and with one that doesn't. The behavior stays the same.
2006-07-15Added some common script interpreters (awk, bash, sh) that can berillig2-24/+82
replaced automatically by defining REPLACE_AWK, REPLACE_BASH or REPLACE_SH and an appropriate addition to USE_TOOLS. The replace-interpreter.mk file is included unconditionally because the number of variables that would trigger the inclusion of this file is quite large.
2006-07-10Fix reversed test... noted by deiter roelants on tech-pkg.jlam1-2/+2
2006-07-07Rename <phase>_COOKIE variables to _COOKIE.<phase>. These are privatejlam2-14/+14
variables so there are no user-visible changes. This change just makes it a little easier to write for loops.
2006-07-07LIBTOOL_OVERRIDE and SHLIBTOOL_OVERRIDE have slightly differentjlam1-13/+33
semantics in pkgsrc. Because libtool-override is run by default whenever USE_LIBTOOL is specified, LIBTOOL_OVERRIDE never needs to be defined, and some packages set it to nothing to avoid running libtool-override. However, shlibtool-override is only run if SHLIBTOOL_OVERRIDE is defined and non-empty. Split the code for libtool-override and shlibtool-override to reflect these differing semantics. This should make the PHP packages build again by not overriding libtool.
2006-07-07Move the STEP_MSG outside of the .if.endif block so it's always printed.jlam1-3/+3
2006-07-07Add missing "rm" statement that was causing the libtool wrapper to bejlam1-1/+2
overwritten in the case where LTCONFIG_OVERRIDE was defined. As a side note, after analyzing the way that the original code in bsd.pkg.mk worked, I think we can nuke LTCONFIG_OVERRIDE completely, but we'll need a bulk build to verify this. The original code always replaced the libtool scripts because LIBTOOL_OVERRIDE is always defined in bsd.pkg.use.mk, so LTCONFIG_OVERRIDE essentially had no effect.
2006-07-07Make configure, install, and package barrier-aware even if NO_CONFIGURE,jlam1-2/+4
NO_INSTALL, or NO_PACKAGE are defined.
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-06Fix cut-and-paste goof.jlam1-4/+4
2006-07-05Flatten out recursive makes into a single re-invocation of make byjlam2-31/+18
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-05Make the check-vulnerable target more self-sufficient, by moving somejlam2-8/+9
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.