gen-pkgconfig.in revision 262617
1#!@SHELL@
2# $Id: gen-pkgconfig.in,v 1.8 2010/02/06 22:12:07 Miroslav.Lichvar Exp $
3##############################################################################
4# Copyright (c) 2009,2010 Free Software Foundation, Inc.                     #
5#                                                                            #
6# Permission is hereby granted, free of charge, to any person obtaining a    #
7# copy of this software and associated documentation files (the "Software"), #
8# to deal in the Software without restriction, including without limitation  #
9# the rights to use, copy, modify, merge, publish, distribute, distribute    #
10# with modifications, sublicense, and/or sell copies of the Software, and to #
11# permit persons to whom the Software is furnished to do so, subject to the  #
12# following conditions:                                                      #
13#                                                                            #
14# The above copyright notice and this permission notice shall be included in #
15# all copies or substantial portions of the Software.                        #
16#                                                                            #
17# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
18# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
19# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
20# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
21# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
23# DEALINGS IN THE SOFTWARE.                                                  #
24#                                                                            #
25# Except as contained in this notice, the name(s) of the above copyright     #
26# holders shall not be used in advertising or otherwise to promote the sale, #
27# use or other dealings in this Software without prior written               #
28# authorization.                                                             #
29##############################################################################
30#
31# Author: Thomas E. Dickey, 2009
32#
33# The complete configure script for ncurses is the ncurses5-config (or similar
34# name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
35# That provides more information than pkg-config, and is the portable and
36# recommended solution.
37#
38# For each library, generate a ".pc" file which depends on the base ncurses
39# library, except that the tinfo library does not depend on ncurses.
40LIB_NAME=@LIB_NAME@
41TINFO_NAME=@TINFO_NAME@
42PANEL_NAME=panel # @PANEL_NAME@
43MENU_NAME=menu # @MENU_NAME@
44FORM_NAME=form # @FORM_NAME@
45CXX_NAME=ncurses++ # @CXX_NAME@
46DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
47TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
48CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
49
50prefix="@prefix@"
51exec_prefix="@exec_prefix@"
52includedir="@includedir@"
53libdir="@libdir@"
54
55show_prefix='@prefix@'
56show_exec_prefix='@exec_prefix@'
57show_includedir='@includedir@'
58show_libdir='@libdir@'
59
60MAIN_LIBRARY="${LIB_NAME}@DFT_ARG_SUFFIX@"
61SUB_LIBRARY="${TINFO_ARG_SUFFIX}"
62PANEL_LIBRARY="${PANEL_NAME}@DFT_ARG_SUFFIX@"
63MENU_LIBRARY="${MENU_NAME}@DFT_ARG_SUFFIX@"
64FORM_LIBRARY="${FORM_NAME}@DFT_ARG_SUFFIX@"
65
66SUB_LIBRARY_REQ=${SUB_LIBRARY}
67if test $TINFO_NAME = $LIB_NAME ; then
68	SUB_LIBRARY_REQ=
69fi
70
71for lib in ../lib/*
72do
73	name=`basename $lib`
74	if test "$name" = "*" ; then
75		break
76	fi
77
78	root=`basename $name "$DFT_DEP_SUFFIX"`
79	if test "$name" = "$root" ; then
80		root=`basename $name "$CXX_LIB_SUFFIX"`
81		if test "$name" = "$root" ; then
82			continue
83		fi
84	fi
85
86	name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'`
87
88	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
89	if test $name = $MAIN_LIBRARY ; then
90		reqs=$SUB_LIBRARY_REQ
91		desc="$desc library"
92	elif test $name = $SUB_LIBRARY ; then
93		reqs=
94		desc="$desc terminal interface library"
95	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
96		reqs="$PANEL_LIBRARY $MENU_LIBRARY $FORM_LIBRARY $MAIN_LIBRARY $SUB_LIBRARY_REQ"
97		desc="$desc add-on library"
98	else
99		reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ"
100		desc="$desc add-on library"
101	fi
102
103	if test "$includedir" = "/usr/include" ; then
104		cflags=
105	else
106		cflags="-I\${includedir}"
107	fi
108
109	if test "$libdir" = "/usr/lib" ; then
110		libs=
111	else
112		libs="-L\${libdir}"
113	fi
114	libs="$libs -l$name"
115
116	# add dependencies that pkg-config cannot guess about
117	if test -z "$reqs" ; then
118		libs="$libs @LIBS@"
119	fi
120
121	echo "** creating ${name}.pc"
122	cat >${name}.pc <<EOF
123prefix=$show_prefix
124exec_prefix=$show_exec_prefix
125libdir=$show_libdir
126includedir=$show_includedir
127major_version=@NCURSES_MAJOR@
128version=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
129
130Name: $name
131Description: $desc
132Version: \${version}
133Requires: $reqs
134Libs: $libs
135Cflags: $cflags
136EOF
137	# pr -f ${name}.pc
138done
139# vile:shmode
140