X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=mk-1st.awk;h=2762fc39a53b6d9b4e3f3d3fa9f45c89554eec15;hp=da23aeaff6cd08fe9e9189b7a6aa9349112a7bbd;hb=761e4f0825b330e970558e82a4bd638383914429;hpb=e2d7d0028f4298dca2b0edaf2dc8ce30518d9218 diff --git a/mk-1st.awk b/mk-1st.awk index da23aeaf..2762fc39 100644 --- a/mk-1st.awk +++ b/mk-1st.awk @@ -1,4 +1,4 @@ -# $Id: mk-1st.awk,v 1.90 2013/03/10 00:09:14 tom Exp $ +# $Id: mk-1st.awk,v 1.95 2013/03/12 11:09:40 tom Exp $ ############################################################################## # Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. # # # @@ -130,23 +130,38 @@ function symlink(src,dst) { } } function rmlink(directory, dst) { - printf "\t-rm -f %s/%s\n", directory, dst + if ( dst != "" ) { + printf "\t-rm -f %s/%s\n", directory, dst + } } function removelinks(directory) { - rmlink(directory, end_name); + nlinks = 0; + links[nlinks++] = end_name; if ( DoLinks == "reverse" ) { if ( ShlibVer == "rel" ) { - rmlink(directory, abi_name); - rmlink(directory, rel_name); + links[nlinks++] = abi_name; + links[nlinks++] = rel_name; } else if ( ShlibVer == "abi" ) { - rmlink(directory, abi_name); + links[nlinks++] = abi_name; } } else { if ( ShlibVer == "rel" ) { - rmlink(directory, abi_name); - rmlink(directory, lib_name); + links[nlinks++] = abi_name; + links[nlinks++] = lib_name; } else if ( ShlibVer == "abi" ) { - rmlink(directory, lib_name); + links[nlinks++] = lib_name; + } + } + for (j = 0; j < nlinks; ++j) { + found = 0; + for (k = 0; k < j; ++k ) { + if ( links[j] == links[k] ) { + found = 1; + break; + } + } + if ( !found ) { + rmlink(directory, links[j]); } } } @@ -234,8 +249,9 @@ function install_dll(directory,filename) { printf "\t%s %s %s\n", program, src_name, dst_name } BEGIN { - found = 0 - using = 0 + TOOL_PREFIX = ""; + found = 0; + using = 0; } /^@/ { using = 0 @@ -244,6 +260,15 @@ BEGIN { } else if (index(subset,$2) > 0) { if (using == 0) { if (found == 0) { + if ( name ~ /^.*\+\+.*/ ) { + if ( CXX_MODEL == "NORMAL" && MODEL == "SHARED" ) { + print "" + printf "# overriding model from %s to match CXX_MODEL\n", MODEL; + MODEL = "NORMAL"; + suffix = ".a"; + DoLinks = "no"; + } + } print "" printf "# generated by mk-1st.awk (subset=%s)\n", subset printf "# name: %s\n", name @@ -300,11 +325,19 @@ BEGIN { printf "%s_OBJS =", OBJS if ( $2 == "lib" ) { found = 1; - } else if ( $2 == "c++" && CXX_MODEL == "SHARED" ) { + } else if ( $2 == "c++" ) { + TOOL_PREFIX = "CXX_"; found = 1; } else { found = 2; } + if ( $2 == "c++" ) { + CC_NAME="CXX" + CC_FLAG="CXXFLAGS" + } else { + CC_NAME="CC" + CC_FLAG="CFLAGS" + } } printf " \\\n\t../%s/%s$o", model, $1; } @@ -400,11 +433,6 @@ END { } else if ( MODEL == "LIBTOOL" ) { - if ( $2 == "c++" ) { - compile="CXX" - } else { - compile="CC" - } end_name = lib_name; printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS if ( is_ticlib() ) { @@ -414,7 +442,10 @@ END { } else { which_list = "SHLIB_LIST"; } - printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", compile, lib_name, OBJS, libtool_version, which_list + printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) $(%s) \\\n", CC_NAME, CC_FLAG; + printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS; + printf "\t\t-rpath $(DESTDIR)$(libdir) \\\n"; + printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list; print "" print "install \\" print "install.libs \\" @@ -432,7 +463,7 @@ END { { end_name = lib_name; printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS - printf "\t$(AR) $(ARFLAGS) $@ $?\n" + printf "\t$(%sAR) $(%sARFLAGS) $@ $?\n", TOOL_PREFIX, TOOL_PREFIX; printf "\t$(RANLIB) $@\n" if ( host == "vxworks" ) {