| #!@SHELL@ |
| # $Id: gen-pkgconfig.in,v 1.52 2021/08/07 21:36:33 tom Exp $ |
| ############################################################################## |
| # Copyright 2018-2020,2021 Thomas E. Dickey # |
| # Copyright 2009-2015,2018 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"), # |
| # to deal in the Software without restriction, including without limitation # |
| # the rights to use, copy, modify, merge, publish, distribute, distribute # |
| # with modifications, sublicense, and/or sell copies of the Software, and to # |
| # permit persons to whom the Software is furnished to do so, subject to the # |
| # following conditions: # |
| # # |
| # The above copyright notice and this permission notice shall be included in # |
| # all copies or substantial portions of the Software. # |
| # # |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # |
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # |
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # |
| # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # |
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # |
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # |
| # DEALINGS IN THE SOFTWARE. # |
| # # |
| # Except as contained in this notice, the name(s) of the above copyright # |
| # holders shall not be used in advertising or otherwise to promote the sale, # |
| # use or other dealings in this Software without prior written # |
| # authorization. # |
| ############################################################################## |
| # |
| # Author: Thomas E. Dickey |
| # |
| # The complete configure script for ncurses is the ncurses5-config (or similar |
| # name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc). |
| # That provides more information than pkg-config, and is the portable and |
| # recommended solution. |
| # |
| # For each library, generate a ".pc" file which depends on the base ncurses |
| # library, except that the tinfo library does not depend on ncurses. |
| LIB_NAME=@LIB_NAME@ |
| TINFO_NAME=@TINFO_NAME@ |
| PANEL_NAME=@PANEL_NAME@ |
| MENU_NAME=@MENU_NAME@ |
| FORM_NAME=@FORM_NAME@ |
| CXX_NAME=@CXX_NAME@ |
| |
| DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@ |
| TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@ |
| CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@ |
| |
| suffix=@PC_MODULE_SUFFIX@ |
| prefix="@prefix@" |
| exec_prefix="@exec_prefix@" |
| includedir="@includedir@@includesubdir@" |
| libdir="@libdir@" |
| |
| RPATH_LIST=@RPATH_LIST@ |
| PRIVATE_LIBS="@PRIVATE_LIBS@" |
| |
| show_prefix='@prefix@' |
| show_exec_prefix='@exec_prefix@' |
| show_includedir='@includedir@@includesubdir@' |
| show_libdir='@libdir@' |
| |
| MAIN_LIBRARY="${LIB_NAME}@USE_ARG_SUFFIX@" |
| SUB_LIBRARY="${TINFO_ARG_SUFFIX}" |
| |
| CXX_LIBRARY="${CXX_NAME}@USE_ARG_SUFFIX@" |
| FORM_LIBRARY="${FORM_NAME}@USE_ARG_SUFFIX@" |
| MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@" |
| PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@" |
| |
| CFLAGS="@PKG_CFLAGS@" |
| if [ "$includedir" != "/usr/include" ]; then |
| includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'` |
| [ "$includetop" = "/usr/include" ] && includetop="$includedir" |
| CFLAGS="$CFLAGS -I\${includedir}" |
| if [ "x$includetop" != "x$includedir" ] |
| then |
| CFLAGS="$CFLAGS -I${includetop}" |
| fi |
| fi |
| |
| lib_flags= |
| for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@ |
| do |
| case $opt in |
| -l*) # LIBS is handled specially below |
| continue |
| ;; |
| -specs*) # ignore linker specs-files which were used to build library |
| continue |
| ;; |
| -Wl,-z,*) # ignore flags used to manipulate shared image |
| continue |
| ;; |
| -Wl,--dynamic-linker*) # ignore ELF interpreter |
| continue |
| ;; |
| -L*) |
| lib_check=`echo "x$opt" | sed -e 's/^.-L//'` |
| [ -d "$lib_check" ] || continue |
| case "$lib_check" in |
| @LD_SEARCHPATH@) # skip standard libdir |
| if [ "$lib_check" = "$libdir" ] |
| then |
| lib_first=yes |
| IFS_save="$IFS" |
| IFS='|' |
| LIBDIRS="@LD_SEARCHPATH@" |
| for lib_check in $LIBDIRS |
| do |
| if [ -d "$lib_check" ] |
| then |
| if [ "$lib_check" != "$libdir" ] |
| then |
| lib_first=no |
| fi |
| break |
| fi |
| done |
| IFS="$IFS_save" |
| [ $lib_first = yes ] && continue |
| found=no |
| for check in $lib_flags |
| do |
| if [ "x$check" = "x$opt" ] |
| then |
| found=yes |
| break |
| fi |
| done |
| [ $found = yes ] && continue |
| : |
| else |
| continue |
| fi |
| ;; |
| *) |
| found=no |
| for check in $lib_flags |
| do |
| if [ "x$check" = "x$opt" ] |
| then |
| found=yes |
| break |
| fi |
| done |
| [ $found = yes ] && continue |
| ;; |
| esac |
| ;; |
| esac |
| lib_flags="$lib_flags $opt" |
| done |
| |
| # Check if we should specify the tinfo library explicitly so that terminfo |
| # functions or curses variables (which also reside in tinfo) can be linked |
| # using the -lncurses option. |
| NEED_TINFO=no |
| if [ "x@TINFO_LIBS@" != "x" ] && \ |
| [ "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY" ] |
| then |
| NEED_TINFO=yes |
| fi |
| |
| # The "URL" feature came in pkg-config 0.17 |
| USEURL="" |
| CFGVER=`pkg-config --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'` |
| # A missing version should simply fail, but some packagers insist on building |
| # packages on machines which do not actually have the tools they depend on at |
| # runtime. |
| [ -z "$CFGVER" ] && CFGVER=30 |
| [ $CFGVER -ge 17 ] || USEURL="#" |
| |
| for name in @PC_MODULES_TO_MAKE@ |
| do |
| name="${name}" |
| case $name in |
| form*) name="$FORM_LIBRARY" ;; |
| menu*) name="$MENU_LIBRARY" ;; |
| panel*) name="$PANEL_LIBRARY" ;; |
| ncurses++*) name="$CXX_LIBRARY" ;; |
| esac |
| LIBS="-l$name" |
| |
| desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" |
| reqs= |
| |
| if [ $name = $MAIN_LIBRARY ]; then |
| desc="$desc library" |
| [ $NEED_TINFO = yes ] && LIBS="$LIBS -l$TINFO_ARG_SUFFIX" |
| [ -n "@LIBS@" ] && LIBS="$LIBS @LIBS@" |
| elif [ $name = $SUB_LIBRARY ]; then |
| desc="$desc terminal interface library" |
| elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then |
| reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}" |
| desc="$desc add-on library" |
| else |
| reqs="$MAIN_LIBRARY${suffix}" |
| desc="$desc add-on library" |
| fi |
| |
| if [ $name != $SUB_LIBRARY ] && \ |
| [ $SUB_LIBRARY != $MAIN_LIBRARY ] && \ |
| [ $name != $TINFO_NAME ] && \ |
| [ $NEED_TINFO != yes ] ; then |
| [ -n "$reqs" ] && reqs="$reqs, " |
| reqs="${reqs}${SUB_LIBRARY}${suffix}" |
| fi |
| |
| if [ $name = $MAIN_LIBRARY ] |
| then |
| main_libs="$PRIVATE_LIBS" |
| else |
| main_libs= |
| fi |
| |
| echo "** creating ${name}${suffix}.pc" |
| cat >${name}${suffix}.pc <<EOF |
| # pkg-config file generated by `basename $0` |
| # vile:makemode |
| |
| prefix=$show_prefix |
| exec_prefix=$show_exec_prefix |
| libdir=$show_libdir |
| includedir=$show_includedir |
| abi_version=@cf_cv_abi_version@ |
| major_version=@NCURSES_MAJOR@ |
| version=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@ |
| |
| Name: ${name}${suffix} |
| Description: $desc |
| Version: \${version} |
| ${USEURL}URL: https://invisible-island.net/ncurses |
| Requires.private: $reqs |
| Libs: $lib_flags $LIBS |
| Libs.private: @LIBS@ $main_libs |
| Cflags: $CFLAGS |
| EOF |
| |
| done |
| # vile:shmode ts=4 sw=4 |