ncurses 6.1 - patch 20180825
[ncurses.git] / mk-1st.awk
index afa0c5ad5e988c706d54d5d4c2824233c1a242fc..e374594108ca32978aa804fb51d6ae658c0a14c0 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.100 2017/12/02 23:29:29 tom Exp $
+# $Id: mk-1st.awk,v 1.105 2018/08/18 16:03:51 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2014,2016 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2017,2018 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"), #
@@ -46,6 +46,7 @@
 #      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)
+#      ReRanlib          ("yes", or "no", flag to rerun ranlib for installing static)
 #      DoLinks           ("yes", "reverse" or "no", flag to add symbolic links)
 #      rmSoLocs          ("yes" or "no", flag to add extra clean target)
 #      ldconfig          (path for this tool, if used)
@@ -205,7 +206,6 @@ function termlib_end_of() {
 function shlib_build(directory) {
                dst_libs = sprintf("%s/%s", directory, end_name);
                printf "%s : \\\n", dst_libs
-               printf "\t\t%s \\\n", directory
                if (subset == "ticlib" && driver == "yes" ) {
                        base = name;
                        sub(/^tic/, "ncurses", base); # workaround for "w"
@@ -222,6 +222,10 @@ function shlib_build(directory) {
                }
                printf "\t\t$(RESULTING_SYMS) $(%s_OBJS)\n", OBJS
                printf "\t@echo linking $@\n"
+               printf "\t@mkdir -p %s\n", directory
+               if ( ReLink != "yes" ) {
+                       printf "\t@sleep 1\n"
+               }
                if ( is_ticlib() ) {
                        make_shlib(OBJS, "TICS_LIST")
                } else if ( is_termlib() ) {
@@ -290,6 +294,7 @@ BEGIN       {
                                        printf "#  TermlibRoot:   %s\n", TermlibRoot 
                                        printf "#  TermlibSuffix: %s\n", TermlibSuffix 
                                        printf "#  ReLink:        %s\n", ReLink 
+                                       printf "#  ReRanlib:      %s\n", ReRanlib 
                                        printf "#  DoLinks:       %s\n", DoLinks 
                                        printf "#  rmSoLocs:      %s\n", rmSoLocs 
                                        printf "#  ldconfig:      %s\n", ldconfig 
@@ -467,6 +472,12 @@ END        {
                        {
                                end_name = lib_name;
                                printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+                               # workaround: binutils' ranlib tries to be clever with
+                               # timestamps, by pretending its update took no time, confusing
+                               # the make utility.
+                               if ( ReLink != "yes" ) {
+                                       printf "\t@sleep 1\n"
+                               }
                                printf "\t$(%sAR) $(%sARFLAGS) $@ $?\n", TOOL_PREFIX, TOOL_PREFIX;
                                printf "\t$(RANLIB) $@\n"
                                if ( host == "vxworks" )
@@ -487,7 +498,10 @@ END        {
                                        symlink("libncurses.a", "libcurses.a")
                                        printf ")\n"
                                }
-                               printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
+                               if ( ReRanlib == "yes" )
+                               {
+                                       printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
+                               }
                                if ( host == "vxworks" )
                                {
                                        printf "\t@echo installing ../lib/lib%s$o as $(DESTDIR)$(libdir)/lib%s$o\n", name, name