X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=mk-1st.awk;h=9e21ad94cac3a92e0e03b76a7eedf243590a2c7a;hp=e41c864b3f0bb78ea32d261ed9127bb19c6694bc;hb=03cbf5c46f9256e202a208aaf9650fd8332fec1d;hpb=0c9774ef662e2137933ac0c79077eaa9c8981357;ds=sidebyside diff --git a/mk-1st.awk b/mk-1st.awk index e41c864b..9e21ad94 100644 --- a/mk-1st.awk +++ b/mk-1st.awk @@ -1,6 +1,6 @@ -# $Id: mk-1st.awk,v 1.73 2007/02/17 21:31:09 tom Exp $ +# $Id: mk-1st.awk,v 1.81 2009/03/28 18:59:51 Charles.Wilson Exp $ ############################################################################## -# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. # +# Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -41,6 +41,7 @@ # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable) # ShlibVerInfix ("yes" or "no", determines location of version #) # TermlibRoot ("tinfo" or other root for libterm.so) +# TermlibSuffix (".so" or other suffix for libterm.so) # ReLink ("yes", or "no", flag to rebuild shared libs on install) # DoLinks ("yes", "reverse" or "no", flag to add symbolic links) # rmSoLocs ("yes" or "no", flag to add extra clean target) @@ -58,7 +59,7 @@ function is_ticlib() { return ( subset ~ /^ticlib$/ ); } function is_termlib() { - return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ ); + return ( subset ~ /^(ticlib\+)?termlib((\+[^+ ]+)*\+ext_tinfo)?$/ ); } # see lib_name function lib_name_of(a_name) { @@ -163,26 +164,30 @@ function sharedlinks(directory) { printf ")\n" } } +# termlib may be named explicitly via "--with-termlib=XXX", which overrides +# any suffix. Temporarily override "suffix" to account for this. +function termlib_end_of() { + termlib_save_suffix = suffix; + suffix = TermlibSuffix; + termlib_temp_result = end_name_of(TermlibRoot); + suffix = termlib_save_suffix; + return termlib_temp_result; +} function shlib_build(directory) { - if ( ShlibVer == "cygdll" ) { - dst_libs = sprintf("%s/$(SHARED_LIB) %s/$(IMPORT_LIB)", directory, directory); - } else { - dst_libs = sprintf("%s/%s", directory, end_name); - } + dst_libs = sprintf("%s/%s", directory, end_name); printf "%s : \\\n", dst_libs printf "\t\t%s \\\n", directory if (subset ~ /^base/ || subset == "ticlib" ) { save_suffix = suffix sub(/^[^.]\./,".",suffix) if (directory != "../lib") { - printf "\t\t%s/%s \\\n", "../lib", end_name_of(TermlibRoot); + printf "\t\t%s/%s \\\n", "../lib", termlib_end_of(); } - printf "\t\t%s/%s \\\n", directory, end_name_of(TermlibRoot); + printf "\t\t%s/%s \\\n", directory, termlib_end_of(); suffix = save_suffix } printf "\t\t$(%s_OBJS)\n", OBJS printf "\t@echo linking $@\n" - print "\t-@rm -f %s", dst_libs; if ( is_ticlib() ) { make_shlib(OBJS, "TICS_LIST") } else if ( is_termlib() ) { @@ -193,36 +198,19 @@ function shlib_build(directory) { sharedlinks(directory) } function shlib_install(directory) { - if ( ShlibVer == "cygdll" ) { - src_lib1 = sprintf("%s/$(SHARED_LIB)", "../lib"); - src_lib2 = sprintf("%s/$(IMPORT_LIB)", "../lib"); - src_libs = sprintf("%s %s", src_lib1, src_lib2); - dst_lib1 = sprintf("%s/$(SHARED_LIB)", directory); - dst_lib2 = sprintf("%s/$(IMPORT_LIB)", directory); - dst_libs = sprintf("%s %s", dst_lib1, dst_lib2); - } else { - src_lib1 = sprintf("../lib/%s", end_name); - src_lib2 = "" - src_libs = src_lib1 - dst_lib1 = sprintf("%s/%s", directory, end_name); - dst_libs = dst_lib1; - } - printf "%s : \\\n", dst_libs + src_lib1 = sprintf("../lib/%s", end_name); + dst_lib1 = sprintf("%s/%s", directory, end_name); + printf "%s : \\\n", dst_lib1 printf "\t\t%s \\\n", directory - printf "\t\t%s\n", src_libs + printf "\t\t%s\n", src_lib1 printf "\t@echo installing $@\n" - print "\t-@rm -f %s", dst_libs; printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1; - if ( src_lib2 != "" ) { - printf "\t$(INSTALL_LIB) %s %s\n", src_lib2, dst_lib2; - } sharedlinks(directory) } function install_dll(directory,filename) { src_name = sprintf("../lib/%s", filename); dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename); printf "\t@echo installing %s as %s\n", src_name, dst_name - printf "\t-@rm -f %s\n", dst_name if ( directory == "$(bindir)" ) { program = "$(INSTALL) -m 755"; } else { @@ -253,6 +241,7 @@ BEGIN { printf "# ShlibVer: %s\n", ShlibVer printf "# ShlibVerInfix: %s\n", ShlibVerInfix printf "# TermlibRoot: %s\n", TermlibRoot + printf "# TermlibSuffix: %s\n", TermlibSuffix printf "# ReLink: %s\n", ReLink printf "# DoLinks: %s\n", DoLinks printf "# rmSoLocs: %s\n", rmSoLocs @@ -397,7 +386,13 @@ END { } end_name = lib_name; printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS - printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)\n", compile, lib_name, OBJS + if ( is_ticlib() ) { + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS + } else if ( is_termlib() ) { + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS + } else { + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS + } print "" print "install \\" print "install.libs \\" @@ -415,7 +410,7 @@ END { { end_name = lib_name; printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS - printf "\t$(AR) $(AR_OPTS) $@ $?\n" + printf "\t$(AR) $(ARFLAGS) $@ $?\n" printf "\t$(RANLIB) $@\n" if ( host == "vxworks" ) {