X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=mk-1st.awk;h=7d9390522895ac349826f866d602bf04506b5b14;hp=87dcdee2b545d74c0a1827d2a565b790213895cc;hb=3b18e0dcb8788afe80d6cdda05171669e3db0068;hpb=b6d7123594f6959ad0a6602b3952d9e6abe261a0 diff --git a/mk-1st.awk b/mk-1st.awk index 87dcdee2..7d939052 100644 --- a/mk-1st.awk +++ b/mk-1st.awk @@ -1,6 +1,6 @@ -# $Id: mk-1st.awk,v 1.75 2007/02/24 22:10:21 tom Exp $ +# $Id: mk-1st.awk,v 1.83 2010/05/15 19:14:44 tom Exp $ ############################################################################## -# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. # +# Copyright (c) 1998-2009,2010 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) @@ -48,6 +49,7 @@ # overwrite ("yes" or "no", flag to add link to libcurses.a # depend (optional dependencies for all objects, e.g, ncurses_cfg.h) # host (cross-compile host, if any) +# libtool_version (libtool "-version-info" or "-version-number") # # Notes: # CLIXs nawk does not like underscores in command-line variable names. @@ -58,7 +60,7 @@ function is_ticlib() { return ( subset ~ /^ticlib$/ ); } function is_termlib() { - return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ ); + return ( subset ~ /^(ticlib\+)?termlib((\+[^+ ]+)*\+[a-z_]+_tinfo)?$/ ); } # see lib_name function lib_name_of(a_name) { @@ -163,6 +165,15 @@ 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) { dst_libs = sprintf("%s/%s", directory, end_name); printf "%s : \\\n", dst_libs @@ -171,14 +182,13 @@ function shlib_build(directory) { 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() ) { @@ -191,22 +201,17 @@ function shlib_build(directory) { function shlib_install(directory) { src_lib1 = sprintf("../lib/%s", end_name); dst_lib1 = sprintf("%s/%s", directory, end_name); - printf "%s : \\\n", dst_libs + 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 { @@ -237,6 +242,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 @@ -381,7 +387,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) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version + } else if ( is_termlib() ) { + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version + } else { + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version + } print "" print "install \\" print "install.libs \\" @@ -399,7 +411,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" ) {