X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=mk-1st.awk;h=74bc2ebe8384ef4044e815600c7da363807da065;hp=7f261e727b9a335c30fee2fa98faaa8ab7ea614b;hb=HEAD;hpb=1f7a36fe16b11bb4aab51be89bbc1b0f75936b78 diff --git a/mk-1st.awk b/mk-1st.awk index 7f261e72..6a5eafab 100644 --- a/mk-1st.awk +++ b/mk-1st.awk @@ -1,6 +1,6 @@ -# $Id: mk-1st.awk,v 1.108 2020/08/29 22:02:56 tom Exp $ +# $Id: mk-1st.awk,v 1.125 2023/04/22 15:49:59 tom Exp $ ############################################################################## -# Copyright 2018,2020 Thomas E. Dickey # +# Copyright 2018-2021,2023 Thomas E. Dickey # # Copyright 1998-2016,2017 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # @@ -36,6 +36,8 @@ # traces ("all" or "DEBUG", to control whether tracing is compiled in) # MODEL (e.g., "DEBUG", uppercase; toupper is not portable) # CXX_MODEL (e.g., "DEBUG", uppercase) +# LIB_SUFFIX (e.g., "", "w", "t", "tw") +# USE_LIB_SUFFIX (e.g., "", "w", "t", "tw") # model (directory into which we compile, e.g., "obj") # prefix (e.g., "lib", for Unix-style libraries) # suffix (e.g., "_g.a", for debug libraries) @@ -51,6 +53,7 @@ # 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) +# make_phony ("yes" if the make-program accepts ".PHONY" directive. # 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) @@ -59,7 +62,7 @@ # Notes: # CLIXs nawk does not like underscores in command-line variable names. # Mixed-case variable names are ok. -# HP/UX requires shared libraries to have executable permissions. +# HP-UX requires shared libraries to have executable permissions. # function is_ticlib() { return ( subset ~ /^ticlib$/ ); @@ -262,11 +265,19 @@ function install_dll(directory,filename) { function in_subset(value) { value = " " value " "; check = subset; - sub(" .*$", "", check); gsub("[+]", " ", check); check = " " check " "; return index(check,value); } +function trim_suffix(value) { + if (USE_LIB_SUFFIX != "" && length(value) > length(USE_LIB_SUFFIX)) { + check = substr(value, 1 + length(value) - length(USE_LIB_SUFFIX)); + if (check == USE_LIB_SUFFIX) { + value = substr(value, 1, length(value) - length(USE_LIB_SUFFIX)); + } + } + return value; +} BEGIN { TOOL_PREFIX = ""; found = 0; @@ -276,6 +287,8 @@ BEGIN { using = 0 if (subset == "none") { using = 1 + print "" + print "# generated by mk-1st.awk" } else if (in_subset($2) > 0) { if (using == 0) { if (found == 0) { @@ -290,28 +303,32 @@ BEGIN { } print "" printf "# generated by mk-1st.awk (subset=%s)\n", subset - printf "# name: %s\n", name - printf "# traces: %s\n", traces - printf "# MODEL: %s\n", MODEL - printf "# CXX_MODEL: %s\n", CXX_MODEL - printf "# model: %s\n", model - printf "# prefix: %s\n", prefix - printf "# suffix: %s\n", suffix - printf "# subset: %s\n", subset - printf "# driver: %s\n", driver - printf "# ShlibVer: %s\n", ShlibVer - printf "# ShlibVerInfix: %s\n", ShlibVerInfix - printf "# SymLink: %s\n", SymLink - 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 - printf "# overwrite: %s\n", overwrite - printf "# depend: %s\n", depend - printf "# host: %s\n", host + printf "# name: %s\n", name + printf "# traces: %s\n", traces + printf "# MODEL: %s\n", MODEL + printf "# CXX_MODEL: %s\n", CXX_MODEL + printf "# LIB_SUFFIX: %s\n", LIB_SUFFIX + printf "# USE_LIB_SUFFIX: %s\n", USE_LIB_SUFFIX + printf "# model: %s\n", model + printf "# prefix: %s\n", prefix + printf "# suffix: %s\n", suffix + printf "# subset: %s\n", subset + printf "# driver: %s\n", driver + printf "# ShlibVer: %s\n", ShlibVer + printf "# ShlibVerInfix: %s\n", ShlibVerInfix + printf "# SymLink: %s\n", SymLink + 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 + printf "# make_phony: %s\n", make_phony + printf "# overwrite: %s\n", overwrite + printf "# depend: %s\n", depend + printf "# host: %s\n", host + printf "# libtool_version: %s\n", libtool_version print "" } using = 1 @@ -337,8 +354,7 @@ BEGIN { && ( $1 != "link_test" ) \ && ( $2 == "lib" \ || $2 == "progs" \ - || $2 == "c++" \ - || $2 == "tack" )) + || $2 == "c++" )) { if ( found == 0 ) { @@ -459,7 +475,15 @@ END { else if ( MODEL == "LIBTOOL" ) { end_name = lib_name; - printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS + use_name = trim_suffix(TermlibRoot) USE_LIB_SUFFIX + printf "../lib/%s : \\\n", lib_name + if ( (name != use_name ) && ( index(name, "++") == 0 ) && ( index(name, "tic") == 1 || index(name, "ncurses") == 1 ) ) { + printf "\t\t../lib/lib%s.la \\\n", use_name; + if ( index(name, "tic") == 1 && index(TermlibRoot, "ncurses") != 1 ) { + printf "\t\t../lib/lib%s%s.la \\\n", "ncurses", USE_LIB_SUFFIX; + } + } + printf "\t\t$(%s_OBJS)\n", OBJS if ( is_ticlib() ) { which_list = "TICS_LIST"; } else if ( is_termlib() ) { @@ -471,16 +495,31 @@ END { printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS; printf "\t\t-rpath $(libdir) \\\n"; printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list; + if ( make_phony == "yes" ) { + print "" + printf ".PHONY :\tinstall.%s\n", trim_suffix(name); + } print "" print "install \\" print "install.libs \\" - printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name + printf "install.%s :: \\\n", trim_suffix(name); + printf "\t\t$(DESTDIR)$(libdir) \\\n"; + use_name = TermlibRoot USE_LIB_SUFFIX + if ( (name != use_name ) && ( index(name, "++") == 0 ) && ( index(name, "tic") == 1 || index(name, "ncurses") == 1 ) ) { + if ( trim_suffix(TermlibRoot) != trim_suffix(name) ) { + printf "\t\tinstall.%s \\\n", trim_suffix(TermlibRoot); + } + if ( index(name, "tic") == 1 && index(TermlibRoot, "ncurses") != 1 && trim_suffix(name) != "ncurses" ) { + printf "\t\tinstall.%s \\\n", "ncurses"; + } + } + printf "\t\t../lib/%s\n", lib_name printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name printf "\tcd ../lib; $(LIBTOOL_INSTALL) $(INSTALL) %s $(DESTDIR)$(libdir)\n", lib_name print "" print "uninstall \\" print "uninstall.libs \\" - printf "uninstall.%s ::\n", name + printf "uninstall.%s ::\n", trim_suffix(name) printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name printf "\t-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name }