summaryrefslogtreecommitdiff
path: root/makefiles/Makefile.top
Commit message (Collapse)AuthorAgeFilesLines
* makefiles: move __postshared after allJohn-Mark Bell2023-09-171-4/+4
| | | | | | | | all is the default target and must be the first one in the file. The lib-shared component type violated this requirement by declaring __postshared first. Move the __postshared target down and declare it unconditionally (as it's safe to do so, and these Makefiles are complex enough already).
* makefiles/Makefile.top: dependencies for PRE_ and POST_TARGETSMichael Orlitzky2023-09-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PRE_TARGETS and POST_TARGETS are supposed to be built before and after $(OBJECTS), respectively -- at least according to the comments in Makefile.top: # List of targets to run before building $(OBJECT) PRE_TARGETS := # List of targets to run after building $(OBJECT) POST_TARGETS := The default target however builds them at the same time as $(OUTPUT), # Default target all: $(PRE_TARGETS) $(OUTPUT) $(POST_TARGETS) where $(OUTPUT) basically just builds $(OBJECTS): $(OUTPUT): $(BUILDDIR)/stamp $(OBJECTS) ... As a result, there is a race condition when $(OBJECTS) truly requires $(PRE_TARGETS), because they may be built at the same time. The same problem arises the other way around with $(POST_TARGETS). As a demonstration, one can try to build the libsvgtiny shared library directly (note: the details are platform-dependent), $ BD=build-x86_64-pc-linux-gnu-x86_64-pc-linux-gnu-release-lib-shared $ make COMPONENT_TYPE=lib-shared "${BD}/libsvgtiny.so.0.1.7" COMPILE: src/svgtiny.c ... src/svgtiny.c:24:10: fatal error: autogenerated_colors.c: No such file or directory 24 | #include "autogenerated_colors.c" | ^~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. This is because $(PRE_TARGETS) is not satisfied. In practice, this condition seems hard to hit unintentionally, but it can happen if you are building in parallel and extemely unlucky. A user discovered it in Gentoo bug 711200. The fix simply adds the stated dependencies on $(OBJECTS) and $(POST_TARGETS) to guarantee the correct order.
* makefiles: support building shared libs on DarwinCaleb Xu2023-09-161-3/+11
| | | | | | | | | On Darwin (macOS), the flags needed to create a shared library are different. Moreover, the extension is .dylib and the version portion of the soname is inserted between the library name and the libext, e.g. lifoo.1.2.3.dylib. Signed-off-by: Caleb Xu <calebcenter@live.com>
* Enable sanitize target for new gccs and clangDaniel Silverstone2018-07-281-0/+6
|
* Update documentation generationVincent Sanders2015-06-241-4/+2
|
* Add support for INCLUDEDIR in pkg-config files.Adrien Destugues2015-03-211-0/+1
|
* Fix BUILD/HOST confusionVincent Sanders2014-12-191-7/+8
| | | | | | | The recent buildsystem improvements now use BUILD and HOST to set the ABI of the system doing the building and the ABI being targeted. Unfortunately we got these the wrong way round, this fixes that confusion.
* Update the pkg-config installation macro for library substitutionVincent Sanders2014-11-271-1/+5
| | | | | | | | This adds REQUIRED_LIBS variable which is a space separated list of libraries that will be macro expanded into LIBRARIES in pkg-config install target. This is typically used in the "Libs:" stanza for additional (possibly conditional) libraries necessary to link the final program.
* Migrate to target tripletsJohn-Mark Bell2014-11-161-9/+9
|
* add support for multilibrelease/1.1David Tardon2014-01-131-0/+1
| | | | | | | | Linux distributions typically put 64-bit libraries into /usr/lib64 to allow coexistence of 32-bit and 64-bit libraries on one system. The build system should make allowance for this. Signed-off-by: John-Mark Bell <jmb@netsurf-browser.org>
* fix tag pattern to release/* so we can match by git refspecrelease/1.0Vincent Sanders2013-04-191-2/+2
|
* Add a dist target to generate source distribution tarballs from the most ↵Vincent Sanders2013-04-191-0/+17
| | | | recent git tag
* Add backslashJohn-Mark Bell2012-10-241-1/+1
|
* Install binaries with correct permissions.John-Mark Bell2012-10-241-4/+20
|
* Include $(PREFIX)/lib/pkgconfig in the pkg-config search pathJohn Mark Bell2011-03-131-5/+0
| | | | svn path=/trunk/tools/buildsystem/; revision=12012
* Make the pkgconfig installation indicate it is running sed, so I stop being ↵Daniel Silverstone2011-01-251-0/+1
| | | | | | confused svn path=/trunk/tools/buildsystem/; revision=11483
* Ensure we rm the .a file before running ar. That way stale .o elements in ↵Daniel Silverstone2011-01-201-0/+1
| | | | | | the .a don't hang around to confuse me later svn path=/trunk/tools/buildsystem/; revision=11409
* Add TEST_PREREQS support and make TESTCFLAGS postfix the CFLAGSDaniel Silverstone2010-12-041-2/+4
| | | | svn path=/trunk/tools/buildsystem/; revision=10991
* Fix spurious whitespace at start of generated Requires: lineJohn Mark Bell2010-12-041-2/+1
| | | | svn path=/trunk/tools/buildsystem/; revision=10971
* It turns out that arm-unknown-riscos-ln doesn't understand coalesced optionsJohn Mark Bell2010-01-061-4/+4
| | | | svn path=/trunk/tools/buildsystem/; revision=9788
* C++ supportJohn Mark Bell2009-08-261-0/+92
| | | | svn path=/trunk/tools/buildsystem/; revision=9461
* Something approximating support for assembler sources.John Mark Bell2009-07-281-1/+16
| | | | svn path=/trunk/tools/buildsystem/; revision=8846
* Fix uninstallation of pkg-config control filesJohn Mark Bell2009-07-131-1/+1
| | | | svn path=/trunk/tools/buildsystem/; revision=8493
* Auto-detect whether C compiler is GCC and, if it is, whether it supports ↵John Mark Bell2009-06-201-13/+31
| | | | | | | | simultaneous compilation and dependency generation. Add canned rules for compilers that cannot calculate dependency information. svn path=/trunk/tools/buildsystem/; revision=7890
* Drop scan target and just fix up the tooling as appropriateJohn Mark Bell2009-05-301-14/+0
| | | | svn path=/trunk/tools/buildsystem/; revision=7654
* It helps if you get your conditionals the right way round.John Mark Bell2009-05-301-1/+1
| | | | svn path=/trunk/tools/buildsystem/; revision=7652
* More intelligenceJohn Mark Bell2009-05-301-3/+6
| | | | svn path=/trunk/tools/buildsystem/; revision=7651
* First attempt at some kind of static analysis targetJohn Mark Bell2009-05-301-0/+11
| | | | svn path=/trunk/tools/buildsystem/; revision=7648
* This should accomodate the antique sed in BeOS which doesn't handle -i.François Revel2009-04-241-12/+13
| | | | svn path=/trunk/tools/buildsystem/; revision=7307
* Ensure consistency between static and shared library names.John Mark Bell2009-04-211-6/+2
| | | | svn path=/trunk/tools/buildsystem/; revision=7218
* Fix TESTLDFLAGS for shared object name changeDaniel Silverstone2009-04-211-1/+5
| | | | svn path=/trunk/tools/buildsystem/; revision=7205
* Update the shared object building in the shared makesystemDaniel Silverstone2009-04-211-7/+13
| | | | svn path=/trunk/tools/buildsystem/; revision=7203
* Make symlinks relativeJohn Mark Bell2009-04-031-2/+2
| | | | svn path=/trunk/tools/buildsystem/; revision=7038
* Something approximating shared library versioningJohn Mark Bell2009-04-031-10/+62
| | | | svn path=/trunk/tools/buildsystem/; revision=7029
* Allow required packages to be constructed based upon the build configurationJohn Mark Bell2009-03-311-0/+10
| | | | svn path=/trunk/tools/buildsystem/; revision=7014
* Make test target depend on all, so the pre/post targets get runJohn Mark Bell2009-03-261-1/+1
| | | | svn path=/trunk/tools/buildsystem/; revision=6901
* Add a new component type -- riscos-moduleJohn Mark Bell2009-03-261-7/+31
| | | | svn path=/trunk/tools/buildsystem/; revision=6899
* Guard against multiply defining processing rules.John Mark Bell2009-03-251-6/+19
| | | | svn path=/trunk/tools/buildsystem/; revision=6886
* Coverage and profile targets no longer recursively invoke make.John Mark Bell2009-03-251-9/+26
| | | | svn path=/trunk/tools/buildsystem/; revision=6879
* Don't use SHARED(C,LD)FLAGS when building the test binaries.John Mark Bell2009-03-251-3/+5
| | | | svn path=/trunk/tools/buildsystem/; revision=6876
* Fix bugs in test handling.John Mark Bell2009-03-251-4/+5
| | | | | | Also in installation rule regeneration. svn path=/trunk/tools/buildsystem/; revision=6869
* Fix installation rules to actually handle more than one rule per ↵John Mark Bell2009-03-251-14/+17
| | | | | | | | DIR_INSTALL_ITEMS. Make test definitions take the same form as install items. Now you can have more than one source file per test binary. svn path=/trunk/tools/buildsystem/; revision=6867
* Remove build/docs when cleaningJohn Mark Bell2009-03-241-0/+1
| | | | svn path=/trunk/tools/buildsystem/; revision=6852
* A makefile to setup the toolchainJohn Mark Bell2009-03-241-31/+3
| | | | svn path=/trunk/tools/buildsystem/; revision=6843
* Default builddir also includes the component type.John Mark Bell2009-03-241-4/+4
| | | | | | Use CC to link, not LD, cos that's stupid. svn path=/trunk/tools/buildsystem/; revision=6841
* Makefile.subdir no longer auto-adds the directory to the include path.John Mark Bell2009-03-241-9/+9
| | | | | | | Fix canned command sequences to ensure that $(CFLAGS)/$(TESTCFLAGS) is evaluated when the command is run, rather than at parse time. Reorder setting up of TEST(CFLAGS|LDFLAGS) to ensure that any dependent libraries appear after our component. Also ensure these variables are reevaluated when used. svn path=/trunk/tools/buildsystem/; revision=6839
* Split common makefiles out of {hubbub,libcss,lpu,libdom,iconv} treesJohn Mark Bell2009-03-241-0/+378
svn path=/trunk/tools/buildsystem/; revision=6831