summaryrefslogtreecommitdiff
path: root/make.tmpl.in
Commit message (Collapse)AuthorAgeFilesLines
...
* | Revert "Revert "build: Calculate dependencies at same time as compiling.""Joe Thornber2018-05-111-13/+6
|/ | | | This reverts commit ed837e6971ee84aa5b112e021df19901ae400216.
* Revert "build: Calculate dependencies at same time as compiling."Joe Thornber2018-05-041-6/+13
| | | | | | | | This reverts commit 0931067dc5549c443e144d599683b53220021f44. The dep files should be in the build dir, which is not necc. the src dir. Easy to fix, but reverting for now until I have time to revisit.
* build: add -D_FILE_OFFSET_BITS=64Joe Thornber2018-05-021-0/+3
| | | | | | | I don't like having this in a common header because it means you end up including too much and causing unneccessary dependencies. eg, lib/misc/lib.h includes libdevmapper.h, internationalisation, and logging stuff.
* Revert "build: Stop creating the symlinks in include/ on the fly."Joe Thornber2018-05-011-4/+6
| | | | This reverts commit cdcea0bf55c170f538c3ffc114792eb3c993f4ac.
* configure: Remove --enable-testingJoe Thornber2018-04-301-1/+0
|
* build: Calculate dependencies at same time as compiling.Joe Thornber2018-04-301-12/+5
| | | | Speeds up the build slightly.
* build: Stop creating the symlinks in include/ on the fly.Joe Thornber2018-04-271-5/+3
| | | | | | | | | | Git handles symlinks, tar handles symlinks. So I've just put the links themselves into git. This simplifies dependencies a little, and stop some build loops I was hitting. External build dir now works too.
* Revert "build: Stop creating the symlinks in include/ on the fly."Joe Thornber2018-04-271-2/+4
| | | | | | This reverts commit f8f621951315087c4e7720682be495941dc3cf37. It wasn't taking builds outside the src dir into account.
* build: Stop creating the symlinks in include/ on the fly.Joe Thornber2018-04-271-4/+2
| | | | | | | | Git handles symlinks, tar handles symlinks. So I've just put the links themselves into git. This simplifies dependencies a little, and stop some build loops I was hitting.
* [build] Quieten the build downJoe Thornber2018-04-201-22/+40
| | | | | | | It was hard to see warnings with the long command lines scrolling by so quickly. Use 'make V=1' if you need to see all the gritty details.
* [io paths] Unpick agk's aio stuffJoe Thornber2018-04-201-2/+1
|
* device: Basic config and setup to support async I/O.Alasdair G Kergon2018-02-081-1/+2
|
* lvm2app: Suppress deprecation warnings for our buildsMarian Csontos2017-12-141-0/+2
|
* makefiles: add DEFS_$@ for cxxZdenek Kabelac2017-08-011-1/+1
| | | | | Add DEFS_$@ for c++ (used only by test suite...) Just to pair plain C build rules.
* makefiles: fix tested varsZdenek Kabelac2017-08-011-6/+6
| | | | | For resolving usability of DEBUG_MEM - check proper translated make vars for proper value.
* configure: tune BUILD_DMEVENTDZdenek Kabelac2017-08-011-2/+3
| | | | | | | | | | Drop 'DMEVENT' make variable and use BUILD_DMEVENTD like with other daemons. NOTE: by default we do not build dmeventd - maybe time to change as lot of build targets basically do need dmeventd... Switch to use SYSTEMD_LIBS and avoid linking systemd library with every linked tool when dbus notification are enabled. (TODO add missing testing for lib presence)
* configure: improve test for realtime clockZdenek Kabelac2017-08-011-0/+1
| | | | | | | | | | Check first if we need to even link -lrt - since clock functions are normally emebeded with recent glibc (>=2.17) Use standard RT_LIBS name. Avoid duplicate test for realtime clock with lvmlockd Show better error message when realtime clock support is missing or disabled. Link RT_LIBS explicitely with lvmlockd and lvmetad.
* makefiles: fixing linkingZdenek Kabelac2017-08-011-8/+21
| | | | | | | | | | | Avoid adding -g more then once for debug builds. Avoid enabling DEBUG_MEM when we build multithreaded tools. Link executables with -fPIE -pie and --export-dynamic LDFLAGS Introduce PROGS_FLAGS to add option to pass flags for external libs. Link lvm2 internally library only when really used. Link DAEMON_LIBS with daemons. Pass VALGRIND_CFLAGS internally Set shell failure mode on couple places.
* makefiles: use gcc warns with gcc onlyZdenek Kabelac2017-08-011-0/+2
| | | | Avoid passing 'gcc' warning options to non-gcc compiler
* man: fix generated pathsZdenek Kabelac2017-08-011-0/+1
| | | | Use user configured paths instead of some developers paths ;)
* configure: search for (a possibly prefixed) arHeiko Becker2017-06-091-1/+1
| | | | | | e.g. when cross compiling. Signed-off-by: Heiko Becker <heirecka@exherbo.org>
* conf: Remove exec_prefix from confdir.Alasdair G Kergon2017-04-131-1/+1
| | | | Some distros now want to put /etc outside prefix/exec_prefix.
* conf: Add missing prefix to installation directory.Alasdair G Kergon2017-04-131-1/+2
| | | | | Our Makefiles also support systems that set the installation prefix at configuration time - the use of DESTDIR is not required.
* make: Don't hard-code SHELL as /bin/shAlasdair G Kergon2017-03-241-1/+1
|
* make.tmpl: Support per-object DEFS.Alasdair G Kergon2017-03-161-1/+1
| | | | Same as CFLAGS.
* make: Support for 'make -R'.Alasdair G Kergon2017-03-151-1/+6
| | | | Aim to be self-sufficient.
* makefiles: use configure varsZdenek Kabelac2017-02-141-2/+7
| | | | Use binaries found in configure.
* lvmdbus: Add new daemon.Alasdair G Kergon2016-02-171-2/+12
|
* doc: change fsf addressZdenek Kabelac2016-01-211-1/+1
| | | | | Hmm rpmlint suggest fsf is using a different address these days, so lets keep it up-to-date
* makefiles: generate LocalZdenek Kabelac2015-10-131-1/+3
| | | | | | | | | | Use same exported symbols list for other generated symfile as it appeared to be the right way for libdm. Local { local: *; };
* man: Add all_man Makefile target.Alasdair G Kergon2015-09-151-1/+1
| | | | | Use 'make all_man' to generate all man pages (regardless of configuration options) or 'make install_all_man' to install them.
* makefiles: deps depends on header linksZdenek Kabelac2015-09-071-1/+1
| | | | | | Put include/.symlinks_created as a prerequisite for dep calc. Otherwise if these are not generated and user enters tests subdir and runs 'make' he just gets endless loop of dep calculation.
* configure: support --disable-dependency-trackingZdenek Kabelac2015-09-071-0/+2
| | | | | One-time build may enjoy little speedup of build when dependencies are not calculated.
* libdm: Reinstate dm_task_get_info@Base.Alasdair G Kergon2015-09-011-3/+4
| | | | | Move the version script local:* wildcard into a node of its own to avoid conflicting with in-source export macro definitions.
* man: Add install_full_man makefile target.Alasdair G Kergon2015-08-281-1/+1
| | | | | 'make install_full_man' installs all the man pages regardless of which components were enabled when 'configure' was run.
* make.tmpl: Mark internal sharedlib symbols local.Alasdair G Kergon2015-08-261-1/+1
| | | | | | | Since commit 797c18d543947f4c2777b4dcf3ceff57cb55352b some internal symbols have been exported in shared libraries by mistake because 'local: *' got lost. Fix the shell script not to compare the whole filename with 'Base'
* makefiles: remove stray ')'Bryn M. Reeves2015-08-251-1/+1
|
* makefiles: fix ld version script generation for older make versionsBryn M. Reeves2015-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 82a27a8 introduced a change to the symbol versioning macros that allows a new version of a function to be introduced while keeping the old behaviour via a versioned symbol export. The new symbol is listed in the current .exported_symbols.DM_* file and a default (@@VERSION) binding is created during linking. This broke the build on RHEL5, RHEL6 and Debian Lenny. This is because the make version in these distros returns results from the $(wildcard *) command in a different order to the RHEL7 and F22 versions: this affects the ordering of the generated .export.sym version script: RHEL7/F22 for i in ./.exported_symbols.Base ./.exported_symbols.DM_1_02_99 ./.exported_symbols.DM_1_02_98 ./.exported_symbols.DM_1_02_97 ./.exported_symbols.DM_1_02_106 ./.exported_symbols.DM_1_02_105 ./.exported_symbols.DM_1_02_103 ./.exported_symbols.DM_1_02_101 ./.exported_symbols.DM_1_02_104 ./.exported_symbols.DM_1_02_100 290: 000000000003d101 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region_v1_02_104 *388: 000000000003cfc7 314 FUNC GLOBAL DEFAULT 12 dm_stats_create_region@@DM_1_02_106 391: 000000000003d101 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region@DM_1_02_104 *552: 000000000003cfc7 314 FUNC GLOBAL DEFAULT 12 dm_stats_create_region 944: 000000000003d101 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region_v1_02_104 992: 000000000003d101 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region@DM_1_02_104 RHEL6: for i in ./.exported_symbols.Base ./.exported_symbols.DM_1_02_100 ./.exported_symbols.DM_1_02_101 ./.exported_symbols.DM_1_02_103 ./.exported_symbols.DM_1_02_104 ./.exported_symbols.DM_1_02_105 ./.exported_symbols.DM_1_02_106 ./.exported_symbols.DM_1_02_97 ./.exported_symbols.DM_1_02_98 ./.exported_symbols.DM_1_02_99; do\ 290: 000000000003d0e1 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region_v1_02_104 390: 000000000003d0e1 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region@DM_1_02_104 *479: 000000000003cfa7 314 FUNC LOCAL DEFAULT 12 dm_stats_create_region 944: 000000000003d0e1 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region_v1_02_104 992: 000000000003d0e1 106 FUNC GLOBAL DEFAULT 12 dm_stats_create_region@DM_1_02_104 The F22 build has the correct behaviour (although the sort order is inconsistent) but on RHEL6 the 1_02_106 symbol file appears after version 1_02_104 which introduced the original symbol. This causes the later version of the symbol to lose its version binding and be reduced to local scope. If using un-versioned exports of the current version of a symbol (i.e. exported with the plain symbol name and no macro) and using the linker script to set the symbol version, the current version node must appear first in the version script: the un-versioned symbol will be bound to the first version node found that contains it. On RHEL6 and the other older distros the original version of the dm_stats_create_region() call sorted before the current version (DM_1_02_104 vs. DM_1_02_106) leading to a subsequent link error for the later symbol version: dmsetup.o: In function `_do_stats_create_regions': /root/src/git/lvm2/tools/dmsetup.c:4658: undefined reference to `dm_stats_create_region' Ensure that the ordering of entries in the version script is consistent to avoid an old implementation shadowing a newer one by sorting the list of file names before the loop: $$(echo $(EXPORTED_SYMBOLS) | tr ' ' '\n' | sort -rnt_ -k5 ) This only sorts by patch level but this is sufficient to maintain the correct order for current version files. Tested on RHEL5, 6, 7 and F22.
* configure: check for -lm and log10 functionBryn M. Reeves2015-08-181-0/+1
| | | | | | We already use -lm functions in a couple of places (these are satisfied by gcc built-ins for most builds): add a configure.in check and explicitly link to -lm.
* makefiles: use bash subshellZdenek Kabelac2015-05-201-1/+1
| | | | | | | | | Avoid using make's $(shell invocation since the eval order is then somewhat different and use $$( subshell. This also fixes a problem when more then one symbol is found, since target shell has been given separate word list so the 'R' assignment would need "" around it.
* configure: update localedirZdenek Kabelac2015-05-181-1/+1
| | | | | | | | | | Previous patch incorrectly skipped replace of @LOCALEDIR@. The standard option is --localedir so use --with-localedir as backward compatible option and set localedir if it's not yet been set (if the could ever happen). Use double-eval to translate $datarootdir to $prefix to real dir.
* makefiles: better cleanZdenek Kabelac2015-05-181-6/+14
| | | | | | | | | More exact clean of library exported symbols files. Also use $(firstword) test to check for empty string so 'make clean' has now cleaner condensed look. Clean also created include links.
* makefiles: use single targetZdenek Kabelac2015-05-181-12/+10
| | | | | | | Possibly easier to follow - to have just a single dependency line and use if() within rule. Also replace $(words) with $(firstword) which is more commonly used.
* configure: move DEFS to configure.hZdenek Kabelac2015-05-181-13/+0
|
* libdm: new dm_task_get_info with internal_suspendZdenek Kabelac2015-05-151-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce new implmentation of dm_task_get_info() function with support for reading internal_suspend. . This time it is done in a 'versioned' way. We keep the old fashion dm_task_get_info(Base) to implement the old behavior of 1.02.95 libdm code. libdm version 1.02.96 introduced 'macro' wrapper dm_task_get_info_with_deferred_remove with new implementation of dm_task_get_info() - we cannot do anything else then to provide compatible version of this symbol. Now in version 1.02.97 we add new versioned implementation of dm_task_get_info(DM_1_02_97) symbol. This has the effect that i.e. rpm build will finaly resolve proper dependency on a new symbol - so it will be no longer possible, to build a new binary and use old library (rpm -q --provides will show libdevmapper.so.1.02(DM_1_02_97)(64bit)) Also the history is now tracked. If a new function is added (or reimplemented), it needs to be placed in proper file, so it could be exported with right versioning symbol. File .exported_symbols.Base should and any existing older DM should be treated as read-only after a release. Also - only libdm has been currently enhanced with versioned .Base file, as soon as other libs (liblvm, libdevmapper-event) needs changes they should also get their exported symbol files - meanwhile make.tmpl handles both cases.
* makefiles: use srcdirZdenek Kabelac2015-05-141-2/+2
| | | | | Use -I$(srcdir) as that's what we really want here. For %.pot use all includes.
* makefiles: protect CFLAGSZdenek Kabelac2015-05-141-4/+13
| | | | | When CFLAGS and LDFLAGS are passed into - protect them, and avoid even recursive subdir 'extension' of them.
* makefiles: use fullpath when in assignZdenek Kabelac2015-05-141-1/+1
| | | | | | | | | We need to put full path right in the assign moment, otherwise command: make rpm rpmbuild=/my/tmp/dir cannot work as one would have expected.
* makefiles: drop way too generic depsZdenek Kabelac2015-05-141-2/+0
|
* makefiles: runtime spec.incZdenek Kabelac2015-05-121-0/+2
| | | | | | | Support CLEAN_DIRS Var for rpmbuilddir Use LN_S Generate spec.inc at runtime for 'make rpm'.