X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=mk-1st.awk;h=da23aeaff6cd08fe9e9189b7a6aa9349112a7bbd;hb=e2d7d0028f4298dca2b0edaf2dc8ce30518d9218;hp=c23066e3c446d6a6a02aac170db1f6331c1c11fb;hpb=30d31dfbacb0efb3fe5d31567410ede093f9e221;p=ncurses.git diff --git a/mk-1st.awk b/mk-1st.awk index c23066e3..da23aeaf 100644 --- a/mk-1st.awk +++ b/mk-1st.awk @@ -1,6 +1,6 @@ -# $Id: mk-1st.awk,v 1.86 2011/07/02 18:04:15 tom Exp $ +# $Id: mk-1st.awk,v 1.90 2013/03/10 00:09:14 tom Exp $ ############################################################################## -# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # +# Copyright (c) 1998-2012,2013 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"), # @@ -34,10 +34,12 @@ # name (library name, e.g., "ncurses", "panel", "forms", "menus") # 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) # 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) # subset ("none", "base", "base+ext_funcs" or "termlib", etc.) +# driver ("yes" or "no", depends on --enable-term-driver) # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable) # ShlibVerInfix ("yes" or "no", determines location of version #) # SymLink ("ln -s", etc) @@ -69,7 +71,7 @@ function lib_name_of(a_name) { } # see imp_name function imp_name_of(a_name) { - if (ShlibVerInfix == "cygdll") { + if (ShlibVerInfix == "cygdll" || ShlibVerInfix == "mingw") { result = sprintf("%s%s%s.a", prefix, a_name, suffix); } else { result = ""; @@ -80,6 +82,8 @@ function imp_name_of(a_name) { function abi_name_of(a_name) { if (ShlibVerInfix == "cygdll") { result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix); + } else if (ShlibVerInfix == "mingw") { + result = sprintf("%s%s$(ABI_VERSION)%s", prefix, a_name, suffix); } else if (ShlibVerInfix == "yes") { result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix); } else { @@ -91,6 +95,8 @@ function abi_name_of(a_name) { function rel_name_of(a_name) { if (ShlibVerInfix == "cygdll") { result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix); + } else if (ShlibVerInfix == "mingw") { + result = sprintf("%s%s$(REL_VERSION)%s", prefix, a_name, suffix); } else if (ShlibVerInfix == "yes") { result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix); } else { @@ -107,7 +113,7 @@ function end_name_of(a_name) { } else { if ( ShlibVer == "rel" ) { result = rel_name_of(a_name); - } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) { + } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" || ShlibVer == "mingw" ) { result = abi_name_of(a_name); } else { result = lib_name_of(a_name); @@ -148,7 +154,7 @@ function make_shlib(objs, shlib_list) { printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list } function sharedlinks(directory) { - if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) { + if ( ShlibVer != "auto" && ShlibVer != "cygdll" && ShlibVer != "mingw" ) { printf "\tcd %s && (", directory if ( DoLinks == "reverse" ) { if ( ShlibVer == "rel" ) { @@ -181,6 +187,11 @@ 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" + printf "\t\t%s/%s \\\n", directory, end_name_of(base); + } if (subset ~ /^base/ || subset == "ticlib" ) { save_suffix = suffix sub(/^[^.]\./,".",suffix) @@ -238,10 +249,12 @@ BEGIN { 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 @@ -285,12 +298,15 @@ BEGIN { if ( found == 0 ) { printf "%s_OBJS =", OBJS - if ( $2 == "lib" ) - found = 1 - else - found = 2 + if ( $2 == "lib" ) { + found = 1; + } else if ( $2 == "c++" && CXX_MODEL == "SHARED" ) { + found = 1; + } else { + found = 2; + } } - printf " \\\n\t../%s/%s$o", model, $1 + printf " \\\n\t../%s/%s$o", model, $1; } } END { @@ -316,7 +332,7 @@ END { print "install \\" print "install.libs \\" - if ( ShlibVer == "cygdll" ) { + if ( ShlibVer == "cygdll" || ShlibVer == "mingw") { dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)"; printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs @@ -337,7 +353,7 @@ END { if ( overwrite == "yes" && name == "ncurses" ) { - if ( ShlibVer == "cygdll" ) { + if ( ShlibVer == "cygdll" || ShlibVer == "mingw") { ovr_name = sprintf("libcurses%s.a", suffix) printf "\t@echo linking %s to %s\n", imp_name, ovr_name printf "\tcd $(DESTDIR)$(libdir) && (" @@ -358,7 +374,7 @@ END { print "uninstall \\" print "uninstall.libs \\" printf "uninstall.%s ::\n", name - if ( ShlibVer == "cygdll" ) { + if ( ShlibVer == "cygdll" || ShlibVer == "mingw") { printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name @@ -371,11 +387,7 @@ END { removelinks("$(DESTDIR)$(libdir)") if ( overwrite == "yes" && name == "ncurses" ) { - if ( ShlibVer == "cygdll" ) { - ovr_name = sprintf("libcurses%s.a", suffix) - } else { - ovr_name = sprintf("libcurses%s", suffix) - } + ovr_name = sprintf("libcurses%s", suffix) printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name } }