1174993Srafan# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
250276Speter##############################################################################
3174993Srafan# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
450276Speter#                                                                            #
550276Speter# Permission is hereby granted, free of charge, to any person obtaining a    #
650276Speter# copy of this software and associated documentation files (the "Software"), #
750276Speter# to deal in the Software without restriction, including without limitation  #
850276Speter# the rights to use, copy, modify, merge, publish, distribute, distribute    #
950276Speter# with modifications, sublicense, and/or sell copies of the Software, and to #
1050276Speter# permit persons to whom the Software is furnished to do so, subject to the  #
1150276Speter# following conditions:                                                      #
1250276Speter#                                                                            #
1350276Speter# The above copyright notice and this permission notice shall be included in #
1450276Speter# all copies or substantial portions of the Software.                        #
1550276Speter#                                                                            #
1650276Speter# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
1750276Speter# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
1850276Speter# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
1950276Speter# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
2050276Speter# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
2150276Speter# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
2250276Speter# DEALINGS IN THE SOFTWARE.                                                  #
2350276Speter#                                                                            #
2450276Speter# Except as contained in this notice, the name(s) of the above copyright     #
2550276Speter# holders shall not be used in advertising or otherwise to promote the sale, #
2650276Speter# use or other dealings in this Software without prior written               #
2750276Speter# authorization.                                                             #
2850276Speter##############################################################################
2950276Speter#
30166124Srafan# Author: Thomas E. Dickey
3150276Speter#
3250276Speter# Generate list of objects for a given model library
3350276Speter# Variables:
34166124Srafan#	name		  (library name, e.g., "ncurses", "panel", "forms", "menus")
35166124Srafan#	traces		  ("all" or "DEBUG", to control whether tracing is compiled in)
36166124Srafan#	MODEL		  (e.g., "DEBUG", uppercase; toupper is not portable)
37166124Srafan#	model		  (directory into which we compile, e.g., "obj")
38166124Srafan#	prefix		  (e.g., "lib", for Unix-style libraries)
39166124Srafan#	suffix		  (e.g., "_g.a", for debug libraries)
40174993Srafan#	subset		  ("none", "base", "base+ext_funcs" or "termlib", etc.)
41166124Srafan#	ShlibVer	  ("rel", "abi" or "auto", to augment DoLinks variable)
4297049Speter#	ShlibVerInfix ("yes" or "no", determines location of version #)
43174993Srafan#   TermlibRoot   ("tinfo" or other root for libterm.so)
44174993Srafan#   TermlibSuffix (".so" or other suffix for libterm.so)
45174993Srafan#	ReLink		  ("yes", or "no", flag to rebuild shared libs on install)
46166124Srafan#	DoLinks		  ("yes", "reverse" or "no", flag to add symbolic links)
47166124Srafan#	rmSoLocs	  ("yes" or "no", flag to add extra clean target)
48166124Srafan#	ldconfig	  (path for this tool, if used)
49166124Srafan#	overwrite	  ("yes" or "no", flag to add link to libcurses.a
50166124Srafan#	depend		  (optional dependencies for all objects, e.g, ncurses_cfg.h)
51166124Srafan#	host		  (cross-compile host, if any)
5250276Speter#
5350276Speter# Notes:
5450276Speter#	CLIXs nawk does not like underscores in command-line variable names.
55166124Srafan#	Mixed-case variable names are ok.
5650276Speter#	HP/UX requires shared libraries to have executable permissions.
5750276Speter#
58174993Srafanfunction is_ticlib() {
59174993Srafan		return ( subset ~ /^ticlib$/ );
60174993Srafan	}
61174993Srafanfunction is_termlib() {
62174993Srafan		return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
63174993Srafan	}
64174993Srafan# see lib_name
65174993Srafanfunction lib_name_of(a_name) {
66174993Srafan		return sprintf("%s%s%s", prefix, a_name, suffix)
67174993Srafan	}
68174993Srafan# see imp_name
69174993Srafanfunction imp_name_of(a_name) {
70174993Srafan		if (ShlibVerInfix == "cygdll") {
71174993Srafan			result = sprintf("%s%s%s.a", prefix, a_name, suffix);
72174993Srafan		} else {
73174993Srafan			result = "";
74174993Srafan		}
75174993Srafan		return result;
76174993Srafan	}
77174993Srafan# see abi_name
78174993Srafanfunction abi_name_of(a_name) {
79174993Srafan		if (ShlibVerInfix == "cygdll") {
80174993Srafan			result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
81174993Srafan		} else if (ShlibVerInfix == "yes") {
82174993Srafan			result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
83174993Srafan		} else {
84174993Srafan			result = sprintf("%s.$(ABI_VERSION)", lib_name_of(a_name));
85174993Srafan		}
86174993Srafan		return result;
87174993Srafan	}
88174993Srafan# see rel_name
89174993Srafanfunction rel_name_of(a_name) {
90174993Srafan		if (ShlibVerInfix == "cygdll") {
91174993Srafan			result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
92174993Srafan		} else if (ShlibVerInfix == "yes") {
93174993Srafan			result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
94174993Srafan		} else {
95174993Srafan			result = sprintf("%s.$(REL_VERSION)", lib_name_of(a_name));
96174993Srafan		}
97174993Srafan		return result;
98174993Srafan	}
99174993Srafan# see end_name
100174993Srafanfunction end_name_of(a_name) {
101174993Srafan		if ( MODEL != "SHARED" ) {
102174993Srafan			result = lib_name_of(a_name);
103174993Srafan		} else if ( DoLinks == "reverse") {
104174993Srafan			result = lib_name_of(a_name);
105174993Srafan		} else {
106174993Srafan			if ( ShlibVer == "rel" ) {
107174993Srafan				result = rel_name_of(a_name);
108174993Srafan			} else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
109174993Srafan				result = abi_name_of(a_name);
110174993Srafan			} else {
111174993Srafan				result = lib_name_of(a_name);
112174993Srafan			}
113174993Srafan		}
114174993Srafan		return result
115174993Srafan	}
11650276Speterfunction symlink(src,dst) {
11750276Speter		if ( src != dst ) {
11866963Speter			printf "rm -f %s; ", dst
11966963Speter			printf "$(LN_S) %s %s; ", src, dst
12050276Speter		}
12150276Speter	}
12266963Speterfunction rmlink(directory, dst) {
12366963Speter		printf "\t-rm -f %s/%s\n", directory, dst
124166124Srafan	}
12566963Speterfunction removelinks(directory) {
12666963Speter		rmlink(directory, end_name);
12766963Speter		if ( DoLinks == "reverse" ) {
128174993Srafan			if ( ShlibVer == "rel" ) {
129174993Srafan				rmlink(directory, abi_name);
130174993Srafan				rmlink(directory, rel_name);
131174993Srafan			} else if ( ShlibVer == "abi" ) {
132174993Srafan				rmlink(directory, abi_name);
133174993Srafan			}
13466963Speter		} else {
135174993Srafan			if ( ShlibVer == "rel" ) {
136174993Srafan				rmlink(directory, abi_name);
137174993Srafan				rmlink(directory, lib_name);
138174993Srafan			} else if ( ShlibVer == "abi" ) {
139174993Srafan				rmlink(directory, lib_name);
140174993Srafan			}
14150276Speter		}
14250276Speter	}
143166124Srafanfunction make_shlib(objs, shlib_list) {
144166124Srafan		printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list
145166124Srafan	}
14666963Speterfunction sharedlinks(directory) {
14797049Speter		if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) {
14866963Speter			printf "\tcd %s && (", directory
14966963Speter			if ( DoLinks == "reverse" ) {
15066963Speter				if ( ShlibVer == "rel" ) {
15166963Speter					symlink(lib_name, abi_name);
15266963Speter					symlink(abi_name, rel_name);
15366963Speter				} else if ( ShlibVer == "abi" ) {
15466963Speter					symlink(lib_name, abi_name);
15566963Speter				}
15666963Speter			} else {
15766963Speter				if ( ShlibVer == "rel" ) {
15866963Speter					symlink(rel_name, abi_name);
15966963Speter					symlink(abi_name, lib_name);
16066963Speter				} else if ( ShlibVer == "abi" ) {
16166963Speter					symlink(abi_name, lib_name);
16266963Speter				}
16350276Speter			}
16466963Speter			printf ")\n"
16550276Speter		}
16650276Speter	}
167174993Srafan# termlib may be named explicitly via "--with-termlib=XXX", which overrides
168174993Srafan# any suffix.  Temporarily override "suffix" to account for this.
169174993Srafanfunction termlib_end_of() {
170174993Srafan	termlib_save_suffix = suffix;
171174993Srafan	suffix = TermlibSuffix;
172174993Srafan	termlib_temp_result = end_name_of(TermlibRoot);
173174993Srafan	suffix = termlib_save_suffix;
174174993Srafan	return termlib_temp_result;
175174993Srafan}
176174993Srafanfunction shlib_build(directory) {
177174993Srafan		dst_libs = sprintf("%s/%s", directory, end_name);
178174993Srafan		printf "%s : \\\n", dst_libs
179174993Srafan		printf "\t\t%s \\\n", directory
180174993Srafan		if (subset ~ /^base/ || subset == "ticlib" ) {
181174993Srafan			save_suffix = suffix
182174993Srafan			sub(/^[^.]\./,".",suffix)
183174993Srafan			if (directory != "../lib") {
184174993Srafan				printf "\t\t%s/%s \\\n", "../lib", termlib_end_of();
185174993Srafan			}
186174993Srafan			printf "\t\t%s/%s \\\n", directory, termlib_end_of();
187174993Srafan			suffix = save_suffix
188166124Srafan		}
189174993Srafan		printf "\t\t$(%s_OBJS)\n", OBJS
190166124Srafan		printf "\t@echo linking $@\n"
191174993Srafan		if ( is_ticlib() ) {
192174993Srafan			make_shlib(OBJS, "TICS_LIST")
193174993Srafan		} else if ( is_termlib() ) {
194174993Srafan			make_shlib(OBJS, "TINFO_LIST")
195166124Srafan		} else {
196174993Srafan			make_shlib(OBJS, "SHLIB_LIST")
197166124Srafan		}
198166124Srafan		sharedlinks(directory)
199166124Srafan	}
200174993Srafanfunction shlib_install(directory) {
201174993Srafan		src_lib1 = sprintf("../lib/%s", end_name);
202174993Srafan		dst_lib1 = sprintf("%s/%s", directory, end_name);
203174993Srafan		printf "%s : \\\n", dst_lib1
204174993Srafan		printf "\t\t%s \\\n", directory
205174993Srafan		printf "\t\t%s\n", src_lib1
206174993Srafan		printf "\t@echo installing $@\n"
207174993Srafan		printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1;
208174993Srafan		sharedlinks(directory)
209174993Srafan	}
210166124Srafanfunction install_dll(directory,filename) {
211166124Srafan		src_name = sprintf("../lib/%s", filename);
212166124Srafan		dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename);
213166124Srafan		printf "\t@echo installing %s as %s\n", src_name, dst_name
214166124Srafan		if ( directory == "$(bindir)" ) {
215166124Srafan			program = "$(INSTALL) -m 755";
216166124Srafan		} else {
217166124Srafan			program = "$(INSTALL_LIB)";
218166124Srafan		}
219166124Srafan		printf "\t%s %s %s\n", program, src_name, dst_name
220166124Srafan	}
22150276SpeterBEGIN	{
22250276Speter		found = 0
22350276Speter		using = 0
22450276Speter	}
22550276Speter	/^@/ {
22650276Speter		using = 0
22750276Speter		if (subset == "none") {
22850276Speter			using = 1
22950276Speter		} else if (index(subset,$2) > 0) {
23050276Speter			if (using == 0) {
23150276Speter				if (found == 0) {
23250276Speter					print  ""
233166124Srafan					printf "# generated by mk-1st.awk (subset=%s)\n", subset
234166124Srafan					printf "#  name:          %s\n", name 
235166124Srafan					printf "#  traces:        %s\n", traces 
236166124Srafan					printf "#  MODEL:         %s\n", MODEL 
237166124Srafan					printf "#  model:         %s\n", model 
238166124Srafan					printf "#  prefix:        %s\n", prefix 
239166124Srafan					printf "#  suffix:        %s\n", suffix 
240166124Srafan					printf "#  subset:        %s\n", subset 
241166124Srafan					printf "#  ShlibVer:      %s\n", ShlibVer 
242166124Srafan					printf "#  ShlibVerInfix: %s\n", ShlibVerInfix 
243174993Srafan					printf "#  TermlibRoot:   %s\n", TermlibRoot 
244174993Srafan					printf "#  TermlibSuffix: %s\n", TermlibSuffix 
245174993Srafan					printf "#  ReLink:        %s\n", ReLink 
246166124Srafan					printf "#  DoLinks:       %s\n", DoLinks 
247166124Srafan					printf "#  rmSoLocs:      %s\n", rmSoLocs 
248166124Srafan					printf "#  ldconfig:      %s\n", ldconfig 
249166124Srafan					printf "#  overwrite:     %s\n", overwrite 
250166124Srafan					printf "#  depend:        %s\n", depend 
251166124Srafan					printf "#  host:          %s\n", host 
25250276Speter					print  ""
25350276Speter				}
25450276Speter				using = 1
25550276Speter			}
256174993Srafan			if ( is_ticlib() ) {
257174993Srafan				OBJS  = MODEL "_P"
258174993Srafan			} else if ( is_termlib() ) {
25950276Speter				OBJS  = MODEL "_T"
26050276Speter			} else {
26150276Speter				OBJS  = MODEL
26250276Speter			}
26350276Speter		}
26450276Speter	}
26562449Speter	/^[@#]/ {
26662449Speter		next
26762449Speter	}
26862449Speter	$1 ~ /trace/ {
26962449Speter		if (traces != "all" && traces != MODEL && $1 != "lib_trace")
27062449Speter			next
27162449Speter	}
27262449Speter	{
27350276Speter		if (using \
27497049Speter		 && ( $1 != "link_test" ) \
27550276Speter		 && ( $2 == "lib" \
27650276Speter		   || $2 == "progs" \
27750276Speter		   || $2 == "c++" \
27850276Speter		   || $2 == "tack" ))
27950276Speter		{
28050276Speter			if ( found == 0 )
28150276Speter			{
28250276Speter				printf "%s_OBJS =", OBJS
28350276Speter				if ( $2 == "lib" )
28450276Speter					found = 1
28550276Speter				else
28650276Speter					found = 2
28750276Speter			}
288166124Srafan			printf " \\\n\t../%s/%s$o", model, $1
28950276Speter		}
29050276Speter	}
29150276SpeterEND	{
29250276Speter		print  ""
29350276Speter		if ( found != 0 )
29450276Speter		{
29550276Speter			printf "\n$(%s_OBJS) : %s\n", OBJS, depend
29650276Speter		}
29750276Speter		if ( found == 1 )
29850276Speter		{
29950276Speter			print  ""
300174993Srafan			lib_name = lib_name_of(name);
30150276Speter			if ( MODEL == "SHARED" )
30250276Speter			{
303174993Srafan				abi_name = abi_name_of(name);
304174993Srafan				rel_name = rel_name_of(name);
305174993Srafan				imp_name = imp_name_of(name);
306174993Srafan				end_name = end_name_of(name);
30797049Speter
308174993Srafan				shlib_build("../lib")
30997049Speter
31050276Speter				print  ""
31150276Speter				print  "install \\"
31250276Speter				print  "install.libs \\"
31397049Speter
31497049Speter				if ( ShlibVer == "cygdll" ) {
31597049Speter
316166124Srafan					dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)";
317166124Srafan					printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs
318166124Srafan					install_dll("$(bindir)",end_name);
319166124Srafan					install_dll("$(libdir)",imp_name);
32097049Speter
32197049Speter				} else {
32297049Speter
323166124Srafan					lib_dir = "$(DESTDIR)$(libdir)";
324166124Srafan					printf "install.%s :: %s/%s\n", name, lib_dir, end_name
325166124Srafan					print ""
326174993Srafan					if ( ReLink == "yes" ) {
327174993Srafan						shlib_build(lib_dir)
328174993Srafan					} else {
329174993Srafan						shlib_install(lib_dir)
330174993Srafan					}
33197049Speter				}
33297049Speter
33350276Speter				if ( overwrite == "yes" && name == "ncurses" )
33450276Speter				{
335166124Srafan					if ( ShlibVer == "cygdll" ) {
336166124Srafan						ovr_name = sprintf("libcurses%s.a", suffix)
337166124Srafan						printf "\t@echo linking %s to %s\n", imp_name, ovr_name
338166124Srafan						printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, imp_name, ovr_name
339166124Srafan					} else {
340166124Srafan						ovr_name = sprintf("libcurses%s", suffix)
341166124Srafan						printf "\t@echo linking %s to %s\n", end_name, ovr_name
342166124Srafan						printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name
343166124Srafan					}
34450276Speter				}
345166124Srafan				if ( ldconfig != "" && ldconfig != ":" ) {
34666963Speter					printf "\t- test -z \"$(DESTDIR)\" && %s\n", ldconfig
34750276Speter				}
34850276Speter				print  ""
34950276Speter				print  "uninstall \\"
35050276Speter				print  "uninstall.libs \\"
35150276Speter				printf "uninstall.%s ::\n", name
35297049Speter				if ( ShlibVer == "cygdll" ) {
35397049Speter
35497049Speter					printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name
35597049Speter					printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name
35697049Speter
35797049Speter					printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", imp_name
35897049Speter					printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", imp_name
35997049Speter
36097049Speter				} else {
36197049Speter					printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", end_name
36297049Speter					removelinks("$(DESTDIR)$(libdir)")
36397049Speter					if ( overwrite == "yes" && name == "ncurses" )
36497049Speter					{
365166124Srafan						if ( ShlibVer == "cygdll" ) {
366166124Srafan							ovr_name = sprintf("libcurses%s.a", suffix)
367166124Srafan						} else {
368166124Srafan							ovr_name = sprintf("libcurses%s", suffix)
369166124Srafan						}
37097049Speter						printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
37197049Speter					}
37250276Speter				}
37350276Speter				if ( rmSoLocs == "yes" ) {
37450276Speter					print  ""
37550276Speter					print  "mostlyclean \\"
37650276Speter					print  "clean ::"
37750276Speter					printf "\t-@rm -f so_locations\n"
37850276Speter				}
37950276Speter			}
38076726Speter			else if ( MODEL == "LIBTOOL" )
38176726Speter			{
38276726Speter				if ( $2 == "c++" ) {
38376726Speter					compile="CXX"
38476726Speter				} else {
38576726Speter					compile="CC"
38676726Speter				}
38776726Speter				end_name = lib_name;
38876726Speter				printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
389166124Srafan				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
39076726Speter				print  ""
39176726Speter				print  "install \\"
39276726Speter				print  "install.libs \\"
39376726Speter				printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
39476726Speter				printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
395166124Srafan				printf "\tcd ../lib; $(LIBTOOL_INSTALL) $(INSTALL) %s $(DESTDIR)$(libdir)\n", lib_name
39676726Speter				print  ""
39776726Speter				print  "uninstall \\"
39876726Speter				print  "uninstall.libs \\"
39976726Speter				printf "uninstall.%s ::\n", name
40076726Speter				printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
401166124Srafan				printf "\t-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
40276726Speter			}
40350276Speter			else
40450276Speter			{
40550276Speter				end_name = lib_name;
40650276Speter				printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
40750276Speter				printf "\t$(AR) $(AR_OPTS) $@ $?\n"
40850276Speter				printf "\t$(RANLIB) $@\n"
409166124Srafan				if ( host == "vxworks" )
41050276Speter				{
411166124Srafan					printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=$o)\n"
41250276Speter				}
41350276Speter				print  ""
41450276Speter				print  "install \\"
41550276Speter				print  "install.libs \\"
41666963Speter				printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
41766963Speter				printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
41866963Speter				printf "\t$(INSTALL_DATA) ../lib/%s $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
41950276Speter				if ( overwrite == "yes" && lib_name == "libncurses.a" )
42050276Speter				{
42166963Speter					printf "\t@echo linking libcurses.a to libncurses.a\n"
42266963Speter					printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
42366963Speter					printf "\t(cd $(DESTDIR)$(libdir) && $(LN_S) libncurses.a libcurses.a)\n"
42450276Speter				}
42566963Speter				printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
426166124Srafan				if ( host == "vxworks" )
42750276Speter				{
428166124Srafan					printf "\t@echo installing ../lib/lib%s$o as $(DESTDIR)$(libdir)/lib%s$o\n", name, name
429166124Srafan					printf "\t$(INSTALL_DATA) ../lib/lib%s$o $(DESTDIR)$(libdir)/lib%s$o\n", name, name
43050276Speter				}
43150276Speter				print  ""
43250276Speter				print  "uninstall \\"
43350276Speter				print  "uninstall.libs \\"
43450276Speter				printf "uninstall.%s ::\n", name
43566963Speter				printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
43666963Speter				printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
43750276Speter				if ( overwrite == "yes" && lib_name == "libncurses.a" )
43850276Speter				{
43966963Speter					printf "\t@echo linking libcurses.a to libncurses.a\n"
44066963Speter					printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
44150276Speter				}
442166124Srafan				if ( host == "vxworks" )
44350276Speter				{
444166124Srafan					printf "\t@echo uninstalling $(DESTDIR)$(libdir)/lib%s$o\n", name
445166124Srafan					printf "\t-@rm -f $(DESTDIR)$(libdir)/lib%s$o\n", name
44650276Speter				}
44750276Speter			}
44850276Speter			print ""
44950276Speter			print "clean ::"
45066963Speter			removelinks("../lib");
45150276Speter			print ""
45250276Speter			print "mostlyclean::"
45350276Speter			printf "\t-rm -f $(%s_OBJS)\n", OBJS
45476726Speter			if ( MODEL == "LIBTOOL" ) {
455166124Srafan				printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS
45676726Speter			}
45750276Speter		}
45850276Speter		else if ( found == 2 )
45950276Speter		{
46050276Speter			print ""
46150276Speter			print "mostlyclean::"
46250276Speter			printf "\t-rm -f $(%s_OBJS)\n", OBJS
46376726Speter			if ( MODEL == "LIBTOOL" ) {
464166124Srafan				printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS
46576726Speter			}
46650276Speter			print ""
46750276Speter			print "clean ::"
46850276Speter			printf "\t-rm -f $(%s_OBJS)\n", OBJS
46976726Speter			if ( MODEL == "LIBTOOL" ) {
470166124Srafan				printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS
47176726Speter			}
47250276Speter		}
47350276Speter	}
474174993Srafan# vile:ts=4 sw=4
475