Skip to content

Commit 2fa9290

Browse files
committed
[build] new version of makemore
1 parent fcdc7a0 commit 2fa9290

File tree

2 files changed

+37
-18
lines changed

2 files changed

+37
-18
lines changed

configure

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function help {
2323
printf "\t--help\t\t\tdisplay this help and exit\n"
2424
printf "\nInstallation directories:\n"
2525
printf "\t--prefix=PREFIX\t\tinstall architecture-independent files in PREFIX [/usr/local]\n"
26+
printf "\t--exec-prefix=PREFIX\t\tinstall architecture-dependent files in PREFIX [/usr/local]\n"
2627
printf "\t--bindir=DIR\t\tuser executables [PREFIX/bin]\n"
2728
printf "\t--sbindir=DIR\t\tsystem admin executables [PREFIX/sbin]\n"
2829
printf "\t--sysconfdir=DIR\tread-only single-machine data [PREFIX/etc]\n"
@@ -72,6 +73,9 @@ while [ "${1}" != "" ]; do
7273
--prefix*)
7374
prefix=$(argument ${1})
7475
;;
76+
--exec-prefix*)
77+
exec_prefix=$(argument ${1})
78+
;;
7579
--program-prefix*)
7680
program_prefix=$(argument ${1})
7781
;;
@@ -164,6 +168,10 @@ if [ -n "$prefix" ]; then
164168
echo "prefix="$prefix"" >> ${builddir}$out
165169
printf " prefix:\t$prefix\n"
166170
fi
171+
if [ -n "${exec_prefix}" ]; then
172+
echo "exec-prefix="${exec_prefix}"" >> ${builddir}$out
173+
printf " exec-prefix:\t${exec_prefix}\n"
174+
fi
167175
if [ -n "$bindir" ]; then
168176
echo "bindir="$bindir"" >> ${builddir}$out
169177
printf " bindir:\t$bindir\n"

scripts.mk

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -292,17 +292,22 @@ gcov-target:=$(target-objs:%.o=%.gcov)
292292

293293
$(foreach t,$(slib-y) $(lib-y),$(eval include-y+=$($(t)_HEADERS)))
294294

295+
define cmd_pkgconfig
296+
$(shell $(PKGCONFIG) --silence-errors $(2) $(1) || $(PKGCONFIG) --silence-errors $(2) lib$(1))
297+
endef
295298
# LIBRARY may contain libraries name to check
296299
# The name may terminate with {<version>} informations like LIBRARY+=usb{1.0}
297-
# Here the commands remove the informations and store the name into LIBS
300+
# The LIBRARY values use pkg-config to update CFLAGS, LDFLAGS and LIBS
298301
# After LIBS contains all libraries name to link
299-
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBRARY),$(eval $(t)_LIBS+=$(firstword $(subst {, ,$(subst },,$(l)))) ) ))
300-
$(foreach l, $(LIBRARY),$(eval LIBS+=$(firstword $(subst {, ,$(subst },,$(l)))) ) )
301302

302-
$(foreach l, $(LIBS),$(eval CFLAGS+=$(shell $(PKGCONFIG) --cflags lib$(l) 2> /dev/null) ) )
303-
$(foreach l, $(LIBS),$(eval LDFLAGS+=$(shell $(PKGCONFIG) --libs-only-L lib$(l) 2> /dev/null) ) )
304-
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBS),$(eval $(t)_CFLAGS+=$(shell $(PKGCONFIG) --cflags lib$(l) 2> /dev/null))))
305-
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBS),$(eval $(t)_LDFLAGS+=$(shell $(PKGCONFIG) --libs-only-L lib$(l) 2> /dev/null) ) ))
303+
$(foreach l,$(LIBRARY),$(eval CFLAGS+=$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --cflags) ) )
304+
$(foreach l,$(LIBRARY),$(eval LDFLAGS+=$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --libs-only-L) ) )
305+
$(eval LIBS=$(sort $(LIBS)))
306+
$(foreach l,$(LIBRARY),$(eval LIBS+=$(subst -l,,$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --libs-only-l)) ) )
307+
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBRARY),$(eval $(t)_CFLAGS+=$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --cflags))))
308+
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBRARY),$(eval $(t)_LDFLAGS+=$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --libs-only-L) ) ))
309+
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach l, $($(t)_LIBRARY),$(eval $(t)_LIBS+=$(subst -l,,$(call cmd_pkgconfig,$(firstword $(subst {, ,$(subst },,$(l)))), --libs-only-l)) ) ))
310+
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(eval $(t)_LIBS=$(sort $($(t)_LIBS))))
306311

307312
# set the CFLAGS of each source file
308313
$(foreach t,$(slib-y) $(lib-y) $(bin-y) $(sbin-y) $(modules-y),$(foreach s, $($(t)_SOURCES) $($(t)_SOURCES-y),$(eval $(s:%.c=%)_CFLAGS+=$($(t)_CFLAGS)) ))
@@ -505,25 +510,25 @@ RPATH=$(wildcard $(addsuffix /.,$(wildcard $(CURDIR:%/=%)/* $(obj)*)))
505510
quiet_cmd_yacc_y=YACC $*
506511
cmd_yacc_y=$(YACC) -o $@ $<
507512
quiet_cmd_as_o_s=AS $*
508-
cmd_as_o_s=$(TARGETAS) $(ASFLAGS) $($*_CFLAGS) $(SYSROOT_CFLAGS) -c -o $@ $<
513+
cmd_as_o_s=$(TARGETAS) $(ASFLAGS) $($*_CFLAGS) $(if $(SYSROOT),$(SYSROOT_CFLAGS)) -c -o $@ $<
509514
quiet_cmd_cc_o_c=CC $*
510515
cmd_cc_o_c=$(TARGETCC) $(CFLAGS) $($*_CFLAGS) $(SYSROOT_CFLAGS) -c -o $@ $<
511516
quiet_cc_gcov_c=GCOV $*
512517
cmd_cc_gcov_c=$(TARGETGCOV) -p $<
513518
quiet_cmd_cc_o_cpp=CXX $*
514-
cmd_cc_o_cpp=$(TARGETCXX) $(CXXFLAGS) $(CFLAGS) $($*_CXXFLAGS) $($*_CFLAGS) $(SYSROOT_CFLAGS) -c -o $@ $<
519+
cmd_cc_o_cpp=$(TARGETCXX) $(CXXFLAGS) $(CFLAGS) $($*_CXXFLAGS) $($*_CFLAGS) $(if $(SYSROOT),$(SYSROOT_CFLAGS)) -c -o $@ $<
515520
quiet_cmd_moc_hpp=QTMOC $*
516521
cmd_moc_hpp=$(MOC) $(INCLUDES) $($*_MOCFLAGS) $($*_MOCFLAGS-y) -o $@ $<
517522
quiet_cmd_uic_hpp=QTUIC $*
518523
cmd_uic_hpp=$(UIC) $< > $@
519524
quiet_cmd_ld_bin=LD $*
520-
cmd_ld_bin=$(TARGETCC) -L. $($*_LDFLAGS) $(LDFLAGS) $(SYSROOT_LDFLAGS) $(RPATHFLAGS) -o $@ $^ -Wl,--start-group $(LIBS:%=-l%) $($*_LIBS:%=-l%) -Wl,--end-group -lc
525+
cmd_ld_bin=$(TARGETCC) -L. $($*_LDFLAGS) $(LDFLAGS) $(if $(SYSROOT),$(SYSROOT_LDFLAGS)) $(RPATHFLAGS) -o $@ $^ -Wl,--start-group $(LIBS:%=-l%) $($*_LIBS:%=-l%) -Wl,--end-group -lc
521526
quiet_cmd_ld_slib=LD $*
522527
cmd_ld_slib=$(RM) $@ && \
523528
$(TARGETAR) -cvq $@ $^ > /dev/null && \
524529
$(TARGETRANLIB) $@
525530
quiet_cmd_ld_dlib=LD $*
526-
cmd_ld_dlib=$(TARGETCC) $($*_LDFLAGS) $(LDFLAGS) $(SYSROOT_LDFLAGS) $(RPATHFLAGS) -Bdynamic -shared -o $@ $^ $(addprefix -L,$(RPATH)) $(LIBS:%=-l%) $($*_LIBS:%=-l%) -lc
531+
cmd_ld_dlib=$(TARGETCC) $($*_LDFLAGS) $(LDFLAGS) $(if $(SYSROOT),$(SYSROOT_LDFLAGS)) $(RPATHFLAGS) -Bdynamic -shared -o $@ $^ $(LIBS:%=-l%) $($*_LIBS:%=-l%) -lc
527532

528533
quiet_cmd_hostcc_o_c=HOSTCC $*
529534
cmd_hostcc_o_c=$(HOSTCC) $(HOSTCFLAGS) $($*_CFLAGS) -c -o $@ $<
@@ -621,21 +626,26 @@ quiet_cmd_check_lib=CHECK $*
621626
define cmd_check_lib
622627
$(RM) $(TMPDIR)/$(TESTFILE:%=%.c) $(TMPDIR)/$(TESTFILE)
623628
echo "int main(){}" > $(TMPDIR)/$(TESTFILE:%=%.c)
629+
$(eval CFLAGS:=$(if $(strip $(call cmd_pkgconfig,$(2),--exists --print-errors --errors-to-stdout)),,$(call cmd_pkgconfig,$(2),--cflags)))
630+
$(eval LDFLAGS:=$(if $(strip $(call cmd_pkgconfig,$(2),--exists --print-errors --errors-to-stdout)),$(2:%=-l%),$(call cmd_pkgconfig,$(2),--libs)))
624631
$(TARGETCC) -c -o $(TMPDIR)/$(TESTFILE:%=%.o) $(TMPDIR)/$(TESTFILE:%=%.c) $(INTERN_CFLAGS) $(CFLAGS) > /dev/null 2>&1
625-
$(TARGETLD) -o $(TMPDIR)/$(TESTFILE) $(TMPDIR)/$(TESTFILE:%=%.o) $(INTERN_LDFLAGS) $(LDFLAGS) $(addprefix -l, $2) > /dev/null 2>&1
632+
$(TARGETLD) -o $(TMPDIR)/$(TESTFILE) $(TMPDIR)/$(TESTFILE:%=%.o) $(INTERN_LDFLAGS) $(LDFLAGS) $(call cmd_pkgconfig,$(2),--libs) > /dev/null 2>&1
626633
endef
627634

628635
checkoption:=--exact-version
629636
prepare_check=$(if $(filter %-, $2),$(eval checkoption:=--atleast-version),$(if $(filter -%, $2),$(eval checkoption:=--max-version)))
630637
cmd_check2_lib=$(if $(findstring $(3:%-=%), $3),$(if $(findstring $(3:-%=%), $3),,$(eval checkoption:=--atleast-version),$(eval checkoption:=--max-version))) \
631-
$(PKGCONFIG) --print-errors $(checkoption) $(subst -,,$3) lib$2
638+
$(call cmd_pkgconfig,$(2),--print-errors $(checkoption))
632639

633640
$(lib-check-target): %:
634-
@$(RM) $(TMPDIR)/$(TESTFILE:%=%.c) $(TMPDIR)/$(TESTFILE)
635-
@echo "int main(){}" > $(TMPDIR)/$(TESTFILE:%=%.c)
636-
@$(call cmd,check_lib,$(firstword $(subst {, ,$(subst },,$@))))
637-
@$(call prepare_check,$(lastword $(subst {, ,$(subst },,$@))))
638-
@$(if $(findstring $(words $(subst {, ,$(subst },,$@))),2),$(call cmd,check2_lib,$(firstword $(subst {, ,$(subst },,$@))),$(lastword $(subst {, ,$(subst },,$@)))))
641+
$(Q)$(RM) $(TMPDIR)/$(TESTFILE:%=%.c) $(TMPDIR)/$(TESTFILE)
642+
$(Q)echo "int main(){}" > $(TMPDIR)/$(TESTFILE:%=%.c)
643+
$(eval CHECKLIB=$(firstword $(subst {, ,$(subst },,$@))))
644+
$(eval CHECKVERSION=$(if $(findstring {,$@),$(lastword $(subst {, ,$(subst },,$@)))))
645+
$(Q)$(call cmd,check_lib,$(CHECKLIB))
646+
$(Q)$(call prepare_check,$(CHECKVERSION))
647+
$(Q)$(if $(strip $(CHECKVERSION)),echo COUCOU $(CHECKVERSION))
648+
$(Q)$(if $(strip $(CHECKVERSION)),$(call cmd,check2_lib,$(CHECKLIB),$(CHECKVERSION)))
639649

640650
###############################################################################
641651
# Commands for install
@@ -777,6 +787,7 @@ quiet_cmd_generate_pkgconfig=PKGCONFIG $*
777787
define cmd_generate_pkgconfig
778788
printf '# generated by makemore\n' > $@
779789
printf 'prefix=$(prefix)\n' >> $@
790+
printf 'exec_prefix=$${prefix}\n' >> $@
780791
printf 'sysconfdir=$(sysconfdir:$(prefix)/%=$${prefix}/%)\n' >> $@
781792
printf 'libdir=$(libdir:$(prefix)/%=$${exec_prefix}/%)\n' >> $@
782793
printf 'pkglibdir=$(pkglibdir:$(prefix)/%=$${exec_prefix}/%)\n' >> $@

0 commit comments

Comments
 (0)