1# $Id: Makefile.in,v 1.133 2021/07/03 18:53:57 tom Exp $ 2############################################################################## 3# Copyright 2018-2020,2021 Thomas E. Dickey # 4# Copyright 1998-2015,2016 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 32# 33# Simple makefile for c++ window class demo 34 35# turn off _all_ suffix rules; we'll generate our own 36.SUFFIXES: 37 38SHELL = @SHELL@ 39VPATH = @srcdir@ 40 41CF_MFLAGS = @cf_cv_makeflags@ 42@SET_MAKE@ 43x = @EXEEXT@ 44o = .@OBJEXT@ 45 46MODEL = ../@DFT_OBJ_SUBDIR@ 47DESTDIR = @DESTDIR@ 48top_srcdir = @top_srcdir@ 49srcdir = @srcdir@ 50prefix = @prefix@ 51exec_prefix = @exec_prefix@ 52bindir = @bindir@ 53libdir = @libdir@ 54includedir = @includedir@ 55includesubdir = @includesubdir@ 56 57INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) 58 59PACKAGE = @PACKAGE@ 60 61LIBTOOL = @LIBTOOL_CXX@ 62LIBTOOL_OPTS = @LIBTOOL_OPTS@ @LIBTOOL_OPTS_CXX@ 63LIBTOOL_CLEAN = @LIB_CLEAN@ 64LIBTOOL_COMPILE = @LIB_COMPILE@ 65LIBTOOL_LINK = @LIB_LINK@ 66LIBTOOL_INSTALL = @LIB_INSTALL@ 67LIBTOOL_UNINSTALL = @LIB_UNINSTALL@ 68LIBTOOL_VERSION = @LIBTOOL_VERSION@ 69LT_UNDEF = @LT_UNDEF@ 70 71INSTALL = @INSTALL@ 72INSTALL_LIB = $(INSTALL) @INSTALL_LIB@ 73INSTALL_DATA = @INSTALL_DATA@ 74INSTALL_OPT_P = @INSTALL_OPT_P@ 75 76AR = @AR@ 77ARFLAGS = @ARFLAGS@ 78AWK = @AWK@ 79LD = @LD@ 80LN_S = @LN_S@ 81 82CXX_AR = @CXX_AR@ 83CXX_ARFLAGS = @CXX_ARFLAGS@ 84RANLIB = @LIB_PREP@ 85 86CXX = @CXX@ 87CPP = @CXXCPP@ 88CXXFLAGS = @CXXFLAGS@ @EXTRA_CXXFLAGS@ 89CXXLIBS = @CXXLIBS@ 90 91INCDIR = ../include 92CPPFLAGS = -DHAVE_CONFIG_H -DBUILDING_NCURSES_CXX -I../c++ @CPPFLAGS@ 93 94CTAGS = @CTAGS@ 95ETAGS = @ETAGS@ 96 97CC = ${CXX} 98CCFLAGS = $(CPPFLAGS) $(CXXFLAGS) 99 100CFLAGS_LIBTOOL = $(CCFLAGS) 101CFLAGS_NORMAL = $(CCFLAGS) -DNCURSES_STATIC 102CFLAGS_DEBUG = $(CCFLAGS) -DNCURSES_STATIC @CXX_G_OPT@ -DTRACE 103CFLAGS_PROFILE = $(CCFLAGS) -DNCURSES_STATIC -pg 104CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ 105 106CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@) 107 108NCURSES_MAJOR = @NCURSES_MAJOR@ 109NCURSES_MINOR = @NCURSES_MINOR@ 110REL_VERSION = @cf_cv_rel_version@ 111ABI_VERSION = @cf_cv_abi_version@ 112 113LOCAL_LIBDIR = @top_builddir@/lib 114 115LINK = @LINK_PROGS@ $(LIBTOOL_LINK) @CXXLDFLAGS@ 116SHLIB_DIRS = -L../lib 117SHLIB_LIST = $(SHLIB_DIRS) \ 118 -l@FORM_NAME@@USE_LIB_SUFFIX@ \ 119 -l@MENU_NAME@@USE_LIB_SUFFIX@ \ 120 -l@PANEL_NAME@@USE_LIB_SUFFIX@ \ 121 -lncurses@USE_LIB_SUFFIX@ @SHLIB_LIST@ 122 123LIBROOT = ncurses++ 124 125LIBNAME_LIBTOOL = @LIB_PREFIX@$(LIBROOT)@USE_LIB_SUFFIX@.la 126LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@USE_LIB_SUFFIX@.a 127LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@ 128 129LIBRARIES = @Libs_To_Make@ 130 131LINT = @LINT@ 132LINT_OPTS = @LINT_OPTS@ 133LINT_LIBS = -lncurses @LIBS@ 134 135LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@USE_LIB_SUFFIX@ 136RPATH_LIST = @RPATH_LIST@ 137MK_SHARED_LIB = @MK_SHARED_LIB@ 138 139LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(LIBRARIES) 140LINK_NORMAL = $(LINK_FLAGS) 141LINK_DEBUG = $(LINK_FLAGS) 142LINK_PROFILE = $(LINK_FLAGS) 143LINK_SHARED = $(LINK_FLAGS) 144 145# flags for test-programs 146TEST_LIBS = @TEST_LIBS@ 147TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ 148TEST_LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \ 149 @LD_MODEL@ $(TEST_LIBS) @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS) 150 151LDFLAGS_LIBTOOL = $(TEST_LDFLAGS) $(CFLAGS_LIBTOOL) 152LDFLAGS_NORMAL = $(TEST_LDFLAGS) $(CFLAGS_NORMAL) 153LDFLAGS_DEBUG = $(TEST_LDFLAGS) $(CFLAGS_DEBUG) 154LDFLAGS_PROFILE = $(TEST_LDFLAGS) $(CFLAGS_PROFILE) 155LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@ 156 157LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@) 158 159# flags for library built by this makefile 160LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \ 161 @LD_MODEL@ $(TEST_LIBS) @LIBS@ $(CXXLIBS) 162 163AUTO_SRC = \ 164 etip.h 165 166################################################################################ 167 168@MAKE_PHONY@.PHONY : all 169@MAKE_PHONY@.PHONY : check 170@MAKE_PHONY@.PHONY : clean 171@MAKE_PHONY@.PHONY : depend 172@MAKE_PHONY@.PHONY : distclean 173@MAKE_PHONY@.PHONY : install 174@MAKE_PHONY@.PHONY : install.libs 175@MAKE_PHONY@.PHONY : libs 176@MAKE_PHONY@.PHONY : mostlyclean 177@MAKE_PHONY@.PHONY : realclean 178@MAKE_PHONY@.PHONY : sources 179@MAKE_PHONY@.PHONY : uninstall 180@MAKE_PHONY@.PHONY : uninstall.libs 181 182all \ 183libs :: $(AUTO_SRC) $(LIBRARIES) 184 185@MAKE_TESTS@all :: demo$x 186 187depend : 188 189sources : $(AUTO_SRC) 190 191tags: 192 $(CTAGS) *.[h] *.cc 193 194$(DESTDIR)$(libdir) : 195 mkdir -p $@ 196 197mostlyclean :: 198 -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace 199 200clean :: mostlyclean 201 -$(SHELL) -c "if test -n '$x' ; then $(MAKE) clean x=''; fi" 202 -rm -rf $(MODEL)/SunWS_cache 203 -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(LIBRARIES) $(OBJS_DEMO) 204 -rm -rf .libs *.dSYM 205 206distclean :: clean 207 -rm -f Makefile 208 209realclean :: distclean 210 211############################################################################### 212 213HEADER_DEPS = @INTERNALS_HDR@ \ 214 etip.h \ 215 ../include/curses.h \ 216 ../include/eti.h \ 217 ../include/form.h \ 218 ../include/menu.h \ 219 ../include/ncurses_cfg.h \ 220 ../include/ncurses_def.h \ 221 ../include/ncurses_dll.h \ 222 ../include/panel.h \ 223 ../include/unctrl.h \ 224 $(INCDIR)/nc_string.h \ 225 $(srcdir)/cursesp.h \ 226 $(srcdir)/cursesw.h \ 227 $(srcdir)/cursslk.h \ 228 $(srcdir)/internal.h 229 230cursesw_h = $(srcdir)/cursesw.h \ 231 $(HEADER_DEPS) 232 233cursesp_h = $(srcdir)/cursesp.h \ 234 $(cursesw_h) 235 236cursesf_h = $(srcdir)/cursesf.h \ 237 $(cursesp_h) 238 239cursesm_h = $(srcdir)/cursesm.h \ 240 $(cursesp_h) 241 242cursslk_h = $(srcdir)/cursslk.h \ 243 $(cursesw_h) 244 245cursesapp_h = $(srcdir)/cursesapp.h \ 246 $(cursslk_h) 247 248$(INCDIR)/form.h : 249 ( cd ../form && $(MAKE) $@ ) 250 251$(INCDIR)/menu.h : 252 ( cd ../menu && $(MAKE) $@ ) 253 254$(INCDIR)/panel.h : 255 ( cd ../panel && $(MAKE) $@ ) 256 257############################################################################### 258 259OBJS_DEMO = $(MODEL)/demo$o 260 261$(MODEL)/demo$o : $(srcdir)/demo.cc \ 262 $(HEADER_DEPS) \ 263 $(cursesf_h) \ 264 $(cursesm_h) \ 265 $(cursesapp_h) 266 @echo 'compiling demo (obj_s)' 267 @( cd $(MODEL) && $(LIBTOOL_COMPILE) $(CXX) $(CFLAGS_DEFAULT) -c $(top_srcdir)/c++/demo.cc -o $@ ) 268 269demo$x: $(OBJS_DEMO) \ 270 $(LIBRARIES) \ 271 @TEST_DEPS@ 272 @ECHO_LD@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT) 273 274etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh 275 cp $(srcdir)/etip.h.in $@ 276 $(SHELL) $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ 277 278# Verify that each header-file can be compiled without including another. 279check :: 280 @$(SHELL) -c "for header in *.h;\ 281 do \ 282 [ \$${header} = etip.h ] && continue; \ 283 echo \"** testing \$${header}\" ; \ 284 echo \"#include <\$${header}>\" >headers.cc; \ 285 echo \"int main(int argc, char **argv) { (void) argc; (void) argv; return 0; }\" >>headers.cc; \ 286 $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) headers.cc; \ 287 done" 288 -@rm -f headers.* 289 290############################################################################### 291# The remainder of this file is automatically generated during configuration 292############################################################################### 293