summaryrefslogtreecommitdiff
path: root/tests/scripts/features/load
Commit message (Collapse)AuthorAgeFilesLines
* Remove the "preview" status from the loaded object featurePaul Smith2023-05-071-4/+4
| | | | | | | | | | | | | | | | Add an ABI version both to the header file and passed to the setup function. Unfortunately this itself is an ABI break and I couldn't find a good way to avoid it. * NEWS: Announce the ABI is not a preview and the incompatibility. * doc/make.texi: Remove the preview warnings for object loading. Document the new ABI version argument. * src/gnumake.h (GMK_ABI_VERSION): Set the ABI version to 1. Add comments documenting the format of the setup function. * src/load.c (setup_func_t): Rename from load_func_t. (load_file): Pass the ABI version to the setup function. * tests/scripts/features/load: Rework the setup function. * tests/scripts/features/loadapi: Ditto.
* * src/read.c (eval): [SV 40942] Allow targets named "load"Paul Smith2023-05-071-1/+19
| | | | | | | Previously "load:" worked but "load :" failed. Allow the latter as well. This doesn't fix all issues; "load foo :" is still treated as a load operation for "foo" and ":". Avoids SV 50413 as well. * tests/scripts/features/load: Write tests.
* [SV 63044] load: Update .LOADED if the setup function returns -1Dmitry Goncharov2022-09-101-5/+34
| | | | | | | | * src/load.c (load_file): Update .LOADED if setup returns non-0. * tests/scripts/features/load: Change the return value based on an environment variable. Ensure that returning -1 still adds to .LOADED. Also add a test that verifies that make doesn't try to rebuild the loaded file if -1 is returned.
* [SV 63037] Fix tests for newer OS / compilerPaul Smith2022-09-101-6/+9
| | | | | | * tests/scripts/features/load: Add function prototypes. * tests/scripts/features/temp_stdin: Only set user execute bits. Some configurations don't allow changing the group bits...??
* tests: Convert %CONFIG_FLAGS to get_config()Paul Smith2019-10-051-3/+6
| | | | | | | | | | | | * tests/config-flags.pm.W32: Create a predefined Windows file. * Makefile.am (test_FILES): Add it to the distribution. * build_w32.bat: Install tests/config-flags.pm if not existing. * tests/run_make_tests.pl (get_config): Create new function. * tests/scripts/features/archives: Call get_config() rather than using %CONFIG_FLAGS directly. * tests/scripts/features/load: Ditto. * tests/scripts/features/loadapi: Ditto. * tests/scripts/functions/wildcard: Ditto.
* Rework directory structure to use GNU-recommended "src" directory.Paul Smith2017-11-191-1/+1
| | | | | | | | | | | | | | | | | Move the source code (other than glob) into the "src" subdirectory. Update all scripting and recommendations to support this change. * *.c, *.h, w32/*: Move to src/ * configure.ac, Makefile.am, maintMakefile: Locate new source files. * Basic.mk.template, mk/*: Update for new source file locations. * NEWS, README.DOS.template: Update for new locations. * build.template, build_w32.bat, builddos.bat: Ditto. * po/POTFILES.in: Ditto * tests/run_make_tests.pl, tests/scripts/features/load*: Ditto. * make.1: Move to doc. * mk/VMS.mk: Add support for building on VMS (hopefully). * makefile.vms, prepare_w32.bat: Remove. * SCOPTIONS: Update to define HAVE_CONFIG_H
* Remove unsupported build facilities.Paul Smith2017-11-181-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over time the non-standard build and install systems (nmake files, smake files, Visual Studio project files, etc.) have atrophied and maintaining them is not worth the effort, for such a simple utility as make. Remove all the non-standard build tool support and unify OS-specific build rules under a basic set of (GNU make) makefiles. Preserve the existing bootstrapping scripts (for POSIX, Windows, and MS-DOS). Also the existing VMS build scripts are left unchanged: I don't have enough experience with VMS to venture into this area. Perhaps one of the VMS maintainers might like to determine whether conversion would be appropriate. Rather than create libraries for w32 and glob (non-POSIX), simply link the object files directly to remove the complexity. * NEWS: Update with user-facing notes. * Makefile.am: Clean up to use the latest automake best practices. Build Windows code directly from the root makefile to avoid recursion. * README.Amiga, README.DOS.template, README.W32.template: Updated. * INSTALL: Point readers at the README.git file. * maintMakefile: Remove obsolete files. Create Basic.mk file. * Basic.mk.template, mk/*.mk: Create basic GNU make-based makefiles. * build_w32.bat: Copy Basic.mk to Makefile * configure.ac: We no longer need AM_PROG_AR. * dosbuild.bat: Rename to builddos.bat. Incorporate configure.bat. * Makefile.DOS.template: Remove. * NMakefile.template, w32/subproc/NMakefile: Remove. * SMakefile.template, glob/SMakefile, glob/SCOPTIONS, make.lnk: Remove. * configure.bat, glob/configure.bat: Remove. * w32/Makefile.am: Remove. * make_msvc_net2003.sln, make_msvc_net2003.vcproj: Remove.
* [SV 46581] Pre-define .LOADED to avoid warnings.Paul Smith2016-03-131-1/+1
| | | | | | | * main.c (main): Pre-define .LOADED as a default-level variable. * load.c (load_file): Set the value rather than append it. Avoid adding an extra initial whitespace. * tests/scripts/features/load: Run with --warn-undefined-variables.
* * tests/scripts/features/load: Avoid unused variable warnings.Paul Smith2014-09-301-0/+2
|
* [SV 40240] Use configure info to build load test shared libsPaul Smith2013-10-191-3/+9
| | | | | | | | | | | * tests/config-flags.pm.in: A new file containing variable assignments for the test suite; these variables are set by configure to contain the values detected there for compilers, flags, etc. * tests/run_make_tests.pl: Require the config-flags.pm file * tests/scripts/features/load, tests/scripts/features/loadapi: Use the configure-provided values when building the shared test library. * configure.ac: Replace tests/config-flags.pm.in * Makefile.am: Make sure tests/config-flags.pm is up to date
* Add requirement for plugin_is_GPL_compatible symbol in loaded objects.Paul Smith2013-05-141-0/+2
|
* Fix interfacing with and remaking dynamic objects on MS-Windows.Eli Zaretskii2013-05-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | load.c (load_object, load_file): Accept an additional argument DLP and return in it a pointer that can be used to unload the dynamic object. read.c (eval): Call load_file with an additional argument, and record the pointer returned there in the 'struct file' object of dynamic objects in that object's 'struct file'. commands.c (execute_file_commands): Unload dynamic objects before remaking them, to avoid failure to remake if the OS doesn't allow overwriting objects that are in use. filedef.h (struct file): New member dlopen_ptr. gnumake.h (GMK_EXPORT): Define to dllexport/dllimport decorations for Windows and to nothing on other platforms. (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier to prototypes. makeint.h (MAIN): Define before including gnumake.h, to give correct dllexport decorations to exported functions. (load_file): Adjust prototype. loadapi.c: Don't include gnumake.h, since makeint.h already includes it, and takes care of defining MAIN before doing so. build_w32.bat (LinkGCC): Produce an import library for functions exported by Make for loadable dynamic objects. w32/compat/posixfcn.c (dlclose): New function. w32/include/dlfcn.h (dlclose): Add prototype. scripts/features/load: Fix signatures of testload_gmk_setup and explicit_setup, to bring them in line with the documentation.
* Expand the loadable object support.Paul Smith2013-02-251-38/+31
| | | | | | | Provide a simple API for loaded objects to interact with GNU make. I still won't guarantee that this API won't change but it's much closer to something that's supported and provides easy-to-use interfaces with a public header file.
* Allow dynamically loaded objects to be rebuilt by make.Paul Smith2013-01-201-7/+30
|
* Implement new "load" directive.Paul Smith2012-10-291-0/+84
Provides support for dynamically loadable objects in GNU make, as a "technology preview".