106bfebdeSXin LI#!@SHELL@ 2*21817992SBaptiste Daroussin# $Id: gen-pkgconfig.in,v 1.56 2022/10/08 16:45:20 tom Exp $ 306bfebdeSXin LI############################################################################## 4*21817992SBaptiste Daroussin# Copyright 2018-2021,2022 Thomas E. Dickey # 5e1865124SBaptiste Daroussin# Copyright 2009-2015,2018 Free Software Foundation, Inc. # 606bfebdeSXin LI# # 706bfebdeSXin LI# Permission is hereby granted, free of charge, to any person obtaining a # 806bfebdeSXin LI# copy of this software and associated documentation files (the "Software"), # 906bfebdeSXin LI# to deal in the Software without restriction, including without limitation # 1006bfebdeSXin LI# the rights to use, copy, modify, merge, publish, distribute, distribute # 1106bfebdeSXin LI# with modifications, sublicense, and/or sell copies of the Software, and to # 1206bfebdeSXin LI# permit persons to whom the Software is furnished to do so, subject to the # 1306bfebdeSXin LI# following conditions: # 1406bfebdeSXin LI# # 1506bfebdeSXin LI# The above copyright notice and this permission notice shall be included in # 1606bfebdeSXin LI# all copies or substantial portions of the Software. # 1706bfebdeSXin LI# # 1806bfebdeSXin LI# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # 1906bfebdeSXin LI# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # 2006bfebdeSXin LI# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # 2106bfebdeSXin LI# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # 2206bfebdeSXin LI# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # 2306bfebdeSXin LI# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # 2406bfebdeSXin LI# DEALINGS IN THE SOFTWARE. # 2506bfebdeSXin LI# # 2606bfebdeSXin LI# Except as contained in this notice, the name(s) of the above copyright # 2706bfebdeSXin LI# holders shall not be used in advertising or otherwise to promote the sale, # 2806bfebdeSXin LI# use or other dealings in this Software without prior written # 2906bfebdeSXin LI# authorization. # 3006bfebdeSXin LI############################################################################## 3106bfebdeSXin LI# 3273f0a83dSXin LI# Author: Thomas E. Dickey 3306bfebdeSXin LI# 3406bfebdeSXin LI# The complete configure script for ncurses is the ncurses5-config (or similar 3506bfebdeSXin LI# name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc). 3606bfebdeSXin LI# That provides more information than pkg-config, and is the portable and 3706bfebdeSXin LI# recommended solution. 3806bfebdeSXin LI# 3906bfebdeSXin LI# For each library, generate a ".pc" file which depends on the base ncurses 4006bfebdeSXin LI# library, except that the tinfo library does not depend on ncurses. 4106bfebdeSXin LILIB_NAME=@LIB_NAME@ 4206bfebdeSXin LITINFO_NAME=@TINFO_NAME@ 4373f0a83dSXin LIPANEL_NAME=@PANEL_NAME@ 4473f0a83dSXin LIMENU_NAME=@MENU_NAME@ 4573f0a83dSXin LIFORM_NAME=@FORM_NAME@ 4673f0a83dSXin LICXX_NAME=@CXX_NAME@ 477a656419SBaptiste Daroussin 4806bfebdeSXin LIDFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@ 4906bfebdeSXin LITINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@ 5006bfebdeSXin LICXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@ 5106bfebdeSXin LI 52aae38d10SBaptiste Daroussinsuffix=@PC_MODULE_SUFFIX@ 5306bfebdeSXin LIprefix="@prefix@" 5406bfebdeSXin LIexec_prefix="@exec_prefix@" 5573f0a83dSXin LIincludedir="@includedir@@includesubdir@" 5606bfebdeSXin LIlibdir="@libdir@" 5706bfebdeSXin LI 58aae38d10SBaptiste DaroussinRPATH_LIST=@RPATH_LIST@ 59aae38d10SBaptiste DaroussinPRIVATE_LIBS="@PRIVATE_LIBS@" 60aae38d10SBaptiste Daroussin 6106bfebdeSXin LIshow_prefix='@prefix@' 6206bfebdeSXin LIshow_exec_prefix='@exec_prefix@' 6373f0a83dSXin LIshow_includedir='@includedir@@includesubdir@' 6406bfebdeSXin LIshow_libdir='@libdir@' 6506bfebdeSXin LI 66aae38d10SBaptiste DaroussinMAIN_LIBRARY="${LIB_NAME}@USE_ARG_SUFFIX@" 6706bfebdeSXin LISUB_LIBRARY="${TINFO_ARG_SUFFIX}" 687a656419SBaptiste Daroussin 697a656419SBaptiste DaroussinCXX_LIBRARY="${CXX_NAME}@USE_ARG_SUFFIX@" 70aae38d10SBaptiste DaroussinFORM_LIBRARY="${FORM_NAME}@USE_ARG_SUFFIX@" 717a656419SBaptiste DaroussinMENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@" 727a656419SBaptiste DaroussinPANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@" 7306bfebdeSXin LI 74aae38d10SBaptiste DaroussinCFLAGS="@PKG_CFLAGS@" 75aae38d10SBaptiste Daroussinif [ "$includedir" != "/usr/include" ]; then 76aae38d10SBaptiste Daroussin includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'` 77aae38d10SBaptiste Daroussin [ "$includetop" = "/usr/include" ] && includetop="$includedir" 78aae38d10SBaptiste Daroussin CFLAGS="$CFLAGS -I\${includedir}" 79aae38d10SBaptiste Daroussin if [ "x$includetop" != "x$includedir" ] 80aae38d10SBaptiste Daroussin then 81aae38d10SBaptiste Daroussin CFLAGS="$CFLAGS -I${includetop}" 82aae38d10SBaptiste Daroussin fi 8306bfebdeSXin LIfi 8406bfebdeSXin LI 85aae38d10SBaptiste Daroussinlib_flags= 86*21817992SBaptiste Daroussinfor opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@ 87aae38d10SBaptiste Daroussindo 88aae38d10SBaptiste Daroussin case $opt in 89aae38d10SBaptiste Daroussin -l*) # LIBS is handled specially below 90aae38d10SBaptiste Daroussin continue 91aae38d10SBaptiste Daroussin ;; 92aae38d10SBaptiste Daroussin -specs*) # ignore linker specs-files which were used to build library 93aae38d10SBaptiste Daroussin continue 94aae38d10SBaptiste Daroussin ;; 95aae38d10SBaptiste Daroussin -Wl,-z,*) # ignore flags used to manipulate shared image 96aae38d10SBaptiste Daroussin continue 97aae38d10SBaptiste Daroussin ;; 98*21817992SBaptiste Daroussin -Wl,--dynamic-linker*) # ignore ELF interpreter 99*21817992SBaptiste Daroussin continue 100*21817992SBaptiste Daroussin ;; 101*21817992SBaptiste Daroussin -Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*) 102*21817992SBaptiste Daroussin continue 103*21817992SBaptiste Daroussin ;; 104aae38d10SBaptiste Daroussin -L*) 105*21817992SBaptiste Daroussin lib_check=`echo "x$opt" | sed -e 's/^.-L//'` 106*21817992SBaptiste Daroussin # on a new/nonstandard install, $libdir may not yet exist at this point 107*21817992SBaptiste Daroussin if [ "$libdir" != "$lib_check" ] 108*21817992SBaptiste Daroussin then 1097a656419SBaptiste Daroussin [ -d "$lib_check" ] || continue 110*21817992SBaptiste Daroussin fi 1117a656419SBaptiste Daroussin case "$lib_check" in 112aae38d10SBaptiste Daroussin @LD_SEARCHPATH@) # skip standard libdir 1137a656419SBaptiste Daroussin if [ "$lib_check" = "$libdir" ] 1147a656419SBaptiste Daroussin then 1157a656419SBaptiste Daroussin lib_first=yes 1167a656419SBaptiste Daroussin IFS_save="$IFS" 1177a656419SBaptiste Daroussin IFS='|' 1187a656419SBaptiste Daroussin LIBDIRS="@LD_SEARCHPATH@" 1197a656419SBaptiste Daroussin for lib_check in $LIBDIRS 1207a656419SBaptiste Daroussin do 1217a656419SBaptiste Daroussin if [ -d "$lib_check" ] 1227a656419SBaptiste Daroussin then 1237a656419SBaptiste Daroussin if [ "$lib_check" != "$libdir" ] 1247a656419SBaptiste Daroussin then 1257a656419SBaptiste Daroussin lib_first=no 1267a656419SBaptiste Daroussin fi 1277a656419SBaptiste Daroussin break 1287a656419SBaptiste Daroussin fi 1297a656419SBaptiste Daroussin done 1307a656419SBaptiste Daroussin IFS="$IFS_save" 1317a656419SBaptiste Daroussin [ $lib_first = yes ] && continue 1327a656419SBaptiste Daroussin found=no 1337a656419SBaptiste Daroussin for check in $lib_flags 1347a656419SBaptiste Daroussin do 1357a656419SBaptiste Daroussin if [ "x$check" = "x$opt" ] 1367a656419SBaptiste Daroussin then 1377a656419SBaptiste Daroussin found=yes 1387a656419SBaptiste Daroussin break 1397a656419SBaptiste Daroussin fi 1407a656419SBaptiste Daroussin done 1417a656419SBaptiste Daroussin [ $found = yes ] && continue 1427a656419SBaptiste Daroussin : 1437a656419SBaptiste Daroussin else 144aae38d10SBaptiste Daroussin continue 1457a656419SBaptiste Daroussin fi 146aae38d10SBaptiste Daroussin ;; 147aae38d10SBaptiste Daroussin *) 148aae38d10SBaptiste Daroussin found=no 149aae38d10SBaptiste Daroussin for check in $lib_flags 150aae38d10SBaptiste Daroussin do 151aae38d10SBaptiste Daroussin if [ "x$check" = "x$opt" ] 152aae38d10SBaptiste Daroussin then 153aae38d10SBaptiste Daroussin found=yes 154aae38d10SBaptiste Daroussin break 155aae38d10SBaptiste Daroussin fi 156aae38d10SBaptiste Daroussin done 157aae38d10SBaptiste Daroussin [ $found = yes ] && continue 158aae38d10SBaptiste Daroussin ;; 159aae38d10SBaptiste Daroussin esac 160aae38d10SBaptiste Daroussin ;; 161aae38d10SBaptiste Daroussin esac 162aae38d10SBaptiste Daroussin lib_flags="$lib_flags $opt" 163aae38d10SBaptiste Daroussindone 164aae38d10SBaptiste Daroussin 165aae38d10SBaptiste Daroussin# Check if we should specify the tinfo library explicitly so that terminfo 166aae38d10SBaptiste Daroussin# functions or curses variables (which also reside in tinfo) can be linked 167aae38d10SBaptiste Daroussin# using the -lncurses option. 168aae38d10SBaptiste DaroussinNEED_TINFO=no 169aae38d10SBaptiste Daroussinif [ "x@TINFO_LIBS@" != "x" ] && \ 170aae38d10SBaptiste Daroussin [ "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY" ] 171aae38d10SBaptiste Daroussinthen 172aae38d10SBaptiste Daroussin NEED_TINFO=yes 17306bfebdeSXin LIfi 17406bfebdeSXin LI 175e1865124SBaptiste Daroussin# The "URL" feature came in pkg-config 0.17 176e1865124SBaptiste DaroussinUSEURL="" 177*21817992SBaptiste DaroussinCFGVER=`${PKG_CONFIG:-pkg-config} --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'` 178e1865124SBaptiste Daroussin# A missing version should simply fail, but some packagers insist on building 179e1865124SBaptiste Daroussin# packages on machines which do not actually have the tools they depend on at 180e1865124SBaptiste Daroussin# runtime. 181e1865124SBaptiste Daroussin[ -z "$CFGVER" ] && CFGVER=30 182e1865124SBaptiste Daroussin[ $CFGVER -ge 17 ] || USEURL="#" 183e1865124SBaptiste Daroussin 18473f0a83dSXin LIfor name in @PC_MODULES_TO_MAKE@ 18573f0a83dSXin LIdo 18673f0a83dSXin LI name="${name}" 1877a656419SBaptiste Daroussin case $name in 1887a656419SBaptiste Daroussin form*) name="$FORM_LIBRARY" ;; 1897a656419SBaptiste Daroussin menu*) name="$MENU_LIBRARY" ;; 1907a656419SBaptiste Daroussin panel*) name="$PANEL_LIBRARY" ;; 1917a656419SBaptiste Daroussin ncurses++*) name="$CXX_LIBRARY" ;; 1927a656419SBaptiste Daroussin esac 193aae38d10SBaptiste Daroussin LIBS="-l$name" 19473f0a83dSXin LI 19573f0a83dSXin LI desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" 19673f0a83dSXin LI reqs= 19773f0a83dSXin LI 198aae38d10SBaptiste Daroussin if [ $name = $MAIN_LIBRARY ]; then 19973f0a83dSXin LI desc="$desc library" 200aae38d10SBaptiste Daroussin [ $NEED_TINFO = yes ] && LIBS="$LIBS -l$TINFO_ARG_SUFFIX" 201aae38d10SBaptiste Daroussin [ -n "@LIBS@" ] && LIBS="$LIBS @LIBS@" 202aae38d10SBaptiste Daroussin elif [ $name = $SUB_LIBRARY ]; then 20373f0a83dSXin LI desc="$desc terminal interface library" 20473f0a83dSXin LI elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then 205aae38d10SBaptiste Daroussin reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}" 20673f0a83dSXin LI desc="$desc add-on library" 20773f0a83dSXin LI else 208aae38d10SBaptiste Daroussin reqs="$MAIN_LIBRARY${suffix}" 20973f0a83dSXin LI desc="$desc add-on library" 21073f0a83dSXin LI fi 21173f0a83dSXin LI 212aae38d10SBaptiste Daroussin if [ $name != $SUB_LIBRARY ] && \ 213aae38d10SBaptiste Daroussin [ $SUB_LIBRARY != $MAIN_LIBRARY ] && \ 214aae38d10SBaptiste Daroussin [ $name != $TINFO_NAME ] && \ 215aae38d10SBaptiste Daroussin [ $NEED_TINFO != yes ] ; then 216aae38d10SBaptiste Daroussin [ -n "$reqs" ] && reqs="$reqs, " 217aae38d10SBaptiste Daroussin reqs="${reqs}${SUB_LIBRARY}${suffix}" 21806bfebdeSXin LI fi 21906bfebdeSXin LI 220aae38d10SBaptiste Daroussin if [ $name = $MAIN_LIBRARY ] 221aae38d10SBaptiste Daroussin then 222aae38d10SBaptiste Daroussin main_libs="$PRIVATE_LIBS" 223aae38d10SBaptiste Daroussin else 224aae38d10SBaptiste Daroussin main_libs= 225aae38d10SBaptiste Daroussin fi 226aae38d10SBaptiste Daroussin 227aae38d10SBaptiste Daroussin echo "** creating ${name}${suffix}.pc" 228aae38d10SBaptiste Daroussin cat >${name}${suffix}.pc <<EOF 229*21817992SBaptiste Daroussin# pkg-config file generated by `basename "$0"` 230aae38d10SBaptiste Daroussin# vile:makemode 231aae38d10SBaptiste Daroussin 23206bfebdeSXin LIprefix=$show_prefix 23306bfebdeSXin LIexec_prefix=$show_exec_prefix 23406bfebdeSXin LIlibdir=$show_libdir 23506bfebdeSXin LIincludedir=$show_includedir 236aae38d10SBaptiste Daroussinabi_version=@cf_cv_abi_version@ 23706bfebdeSXin LImajor_version=@NCURSES_MAJOR@ 23806bfebdeSXin LIversion=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@ 23906bfebdeSXin LI 240aae38d10SBaptiste DaroussinName: ${name}${suffix} 24106bfebdeSXin LIDescription: $desc 24206bfebdeSXin LIVersion: \${version} 243e1865124SBaptiste Daroussin${USEURL}URL: https://invisible-island.net/ncurses 24473f0a83dSXin LIRequires.private: $reqs 245aae38d10SBaptiste DaroussinLibs: $lib_flags $LIBS 246aae38d10SBaptiste DaroussinLibs.private: @LIBS@ $main_libs 24773f0a83dSXin LICflags: $CFLAGS 24806bfebdeSXin LIEOF 24973f0a83dSXin LI 25006bfebdeSXin LIdone 251aae38d10SBaptiste Daroussin# vile:shmode ts=4 sw=4 252