From 7f4889f34872b9e3c29101e5441f6ba0409e2bdb Mon Sep 17 00:00:00 2001 From: Jon Trulson <jon@radscan.com> Date: Sun, 5 Jan 2020 17:49:02 -0700 Subject: [PATCH] freetype: redo the way we detect and use We (configure) relies on freetype-config existing and telling us what the proper includes and libs are. --- cde/configure.ac | 58 ++++++++++++++++++++++---------- cde/lib/DtWidget/Makefile.am | 14 +++----- cde/programs/dtfile/Makefile.am | 9 ++--- cde/programs/dtlogin/Makefile.am | 8 ++--- 4 files changed, 54 insertions(+), 35 deletions(-) diff --git a/cde/configure.ac b/cde/configure.ac index 6173479b..c7b5dc1f 100644 --- a/cde/configure.ac +++ b/cde/configure.ac @@ -65,9 +65,10 @@ OSMAJORVERSION=4 OSMINORVERSION=15 dnl locations of libs/includes if not in 'standard' places like on -dnl linux -MOTIF_LIB="" -MOTIF_INC="" +dnl linux (/usr/...). We build these up based on where X11 is, and +dnl other things as we go along. +EXTRA_LIBS="" +EXTRA_INCS="" case "${host_os}" in linux*) @@ -122,12 +123,13 @@ AM_CONDITIONAL([HPUX], [test "$build_hpux" = "yes"]) dnl Add osmajor/minor version to cppflags. OSVERSION="-DOSMAJORVERSION=$OSMAJORVERSION -DOSMINORVERSION=$OSMINORVERSION" -dnl set CSRG_BASED define for the BSD's +dnl set CSRG_BASED define for the BSD's. Also, they use /usr/local +dnl for a lot of things, so add that to the INCS and LIBS if test "$bsd" = "yes" then SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DCSRG_BASED" - MOTIF_LIB="-L/usr/local/lib" - MOTIF_INC="-I/usr/local/include -I/usr/X11R6/include/freetype2 -I/usr/local/include/freetype2" + EXTRA_INCS="-I/usr/local/include ${EXTRA_INCS}" + EXTRA_LIBS="-L/usr/local/lib ${EXTRA_LIBS}" fi is_x86_64=no @@ -294,6 +296,10 @@ AC_PROG_CC_C99 AC_PATH_X AC_PATH_XTRA +dnl Add X11 goodies here +EXTRA_LIBS="${X_LIBS} ${EXTRA_LIBS}" +EXTRA_INCS="${X_CFLAGS} ${EXTRA_INCS}" + AC_FUNC_FORK dnl programs with full paths @@ -371,21 +377,39 @@ AC_SUBST(TIRPCLIB) dnl jpeg AC_CHECK_LIB(jpeg, jpeg_read_header, [JPEGLIB="-ljpeg"], [AC_MSG_ERROR([libjpeg not found, please install it])], - [$MOTIF_LIB $X_LIBS]) + [${EXTRA_INCS} ${EXTRA_LIBS}]) AC_SUBST(JPEGLIB) dnl Setup XTOOLLIB - we do it in this specific order to avoid ordering dnl issues XTOOLLIB="" -AC_CHECK_LIB(X11, XOpenDisplay, [XTOOLLIB="-lX11"], , $X_LIBS) -AC_CHECK_LIB(Xau, XauReadAuth, [XTOOLLIB="-lXau ${XTOOLLIB}"], , $X_LIBS) -AC_CHECK_LIB(Xt, XtInitialize, [XTOOLLIB="-lXt ${XTOOLLIB}"], , $X_LIBS) -AC_CHECK_LIB(ICE, IceCloseConnection, [XTOOLLIB="-lICE ${XTOOLLIB}"], , $X_LIBS) -AC_CHECK_LIB(SM, SmcOpenConnection, [XTOOLLIB="-lSM ${XTOOLLIB}"], , $X_LIBS) -AC_CHECK_LIB(Xm, XmTextSetString, [XTOOLLIB="-lXm ${XTOOLLIB}"], , [$MOTIF_LIB $X_LIBS]) -XTOOLLIB="${X_LIBS} ${MOTIF_LIB} ${X_EXTRA_LIBS} ${X_PRE_LIBS} ${XTOOLLIB}" +AC_CHECK_LIB(X11, XOpenDisplay, [XTOOLLIB="-lX11"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_CHECK_LIB(Xau, XauReadAuth, [XTOOLLIB="-lXau ${XTOOLLIB}"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_CHECK_LIB(Xt, XtInitialize, [XTOOLLIB="-lXt ${XTOOLLIB}"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_CHECK_LIB(ICE, IceCloseConnection, [XTOOLLIB="-lICE ${XTOOLLIB}"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_CHECK_LIB(SM, SmcOpenConnection, [XTOOLLIB="-lSM ${XTOOLLIB}"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) +AC_CHECK_LIB(Xm, XmTextSetString, [XTOOLLIB="-lXm ${XTOOLLIB}"], , + [${EXTRA_INCS} ${EXTRA_LIBS}]) + +XTOOLLIB="${EXTRA_INCS} ${EXTRA_LIBS} ${X_EXTRA_LIBS} ${XTOOLLIB}" AC_SUBST([XTOOLLIB]) +dnl Check for freetype libraries/headers +AC_CHECK_TOOLS([FREETYPE_CONFIG], [freetype-config]) +if test -z "$FREETYPE_CONFIG"; then + AC_MSG_ERROR([Missing freetype-config. Install freetype development headers and library.]) +fi + +FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` +AC_SUBST(FREETYPE_CFLAGS) +FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` +AC_SUBST(FREETYPE_LIBS) + dnl check MISSING_PROGS - error out here if there's stuff in it. if test -n "$MISSING_PROGS"; then @@ -401,9 +425,9 @@ dnl variable and presumably add those to your Makefile.am files. We dnl have 192 of these currently, so... The user will just have to dnl deal, or modify them here directly. CPPFLAGS="${CPPFLAGS} ${SOURCE_CPP_DEFINES} ${CPP_COMPILER_FLAGS} ${OSVERSION}" -CFLAGS="${CFLAGS} ${C_COMPILER_FLAGS} ${X_CFLAGS} ${MOTIF_INC} ${PTHREAD_CFLAGS}" -CXXFLAGS="${CXXFLAGS} ${CXX_COMPILER_FLAGS} ${X_CFLAGS} ${MOTIF_INC} ${PTHREAD_CFLAGS}" -LIBS="${X_LIBS} ${LIBS} ${PTHREAD_LIBS}" +CFLAGS="${CFLAGS} ${C_COMPILER_FLAGS} ${EXTRA_INCS} ${PTHREAD_CFLAGS}" +CXXFLAGS="${CXXFLAGS} ${CXX_COMPILER_FLAGS} ${EXTRA_INCS} ${PTHREAD_CFLAGS}" +LIBS="${EXTRA_LIBS} ${LIBS} ${PTHREAD_LIBS}" dnl All of the makefiles we need to generate go here... AC_CONFIG_FILES([ diff --git a/cde/lib/DtWidget/Makefile.am b/cde/lib/DtWidget/Makefile.am index 0726f6ce..e09f4f5e 100644 --- a/cde/lib/DtWidget/Makefile.am +++ b/cde/lib/DtWidget/Makefile.am @@ -4,23 +4,17 @@ MAINTAINERCLEANFILES = Makefile.in lib_LTLIBRARIES = libDtWidget.la -AM_CPPFLAGS = -DCDE_INSTALLATION_TOP=${prefix} @DT_INCDIR@ +AM_CPPFLAGS = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) $(DT_INCDIR) -libDtWidget_la_CFLAGS = -DI18N_MSG -DMULTIBYTE +libDtWidget_la_CFLAGS = -DI18N_MSG -DMULTIBYTE $(FREETYPE_CFLAGS) libDtWidget_la_LDFLAGS = -version-info 2:1:0 -if LINUX -libDtWidget_la_CFLAGS += -I/usr/include/freetype2 -endif - -if BSD -libDtWidget_la_CFLAGS += -I/usr/local/include/freetype2 -endif +libDtWidget_la_LIBADD = $(FREETYPE_LIBS) if SOLARIS libDtWidget_la_CFLAGS += -DNO_REGCOMP -libDtWidget_la_LIBADD = -lXm -lc -lw -lm -lintl +libDtWidget_la_LIBADD += -lc -lw -lintl endif diff --git a/cde/programs/dtfile/Makefile.am b/cde/programs/dtfile/Makefile.am index 2ce5f474..2cc10907 100644 --- a/cde/programs/dtfile/Makefile.am +++ b/cde/programs/dtfile/Makefile.am @@ -14,11 +14,12 @@ dist_bin_SCRIPTS = dtfile_error dtfile_CPPFLAGS = -I./dtcopy -DSHAPE -D_ILS_MACROS -DSUN_PERF \ -DCDE_INSTALLATION_TOP=\"${prefix}\" \ -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\" \ - -DKORNSHELL=\"$(KSH)\" -I/usr/include/freetype2 + -DKORNSHELL=\"$(KSH)\" $(FREETYPE_CFLAGS) -dtfile_LDADD = @DTCLIENTLIBS@ $(TIRPCLIB) -lXm -lXext \ - $(XTOOLLIB) ${X_LIBS} dtcopy/sharedFuncs.o \ - dtcopy/fsrtns.o +dtfile_LDADD = dtcopy/sharedFuncs.o \ + dtcopy/fsrtns.o \ + $(DTCLIENTLIBS) $(TIRPCLIB) -lXm -lXext $(FREETYPE_LIBS) \ + $(XTOOLLIB) if OPENBSD dtfile_CPPFLAGS += -DFILE_MAP_OPTIMIZE diff --git a/cde/programs/dtlogin/Makefile.am b/cde/programs/dtlogin/Makefile.am index cdb3309e..9551513d 100644 --- a/cde/programs/dtlogin/Makefile.am +++ b/cde/programs/dtlogin/Makefile.am @@ -14,7 +14,7 @@ DEF_PM_PATH = $(CDE_CONFIGURATION_TOP)/appconfig/icons/%L/%B%M.pm:$(CDE_CONFIGUR AM_CFLAGS = -DCDE_CONFIGURATION_TOP=\"$(CDE_CONFIGURATION_TOP)\" \ -DCDE_INSTALLATION_TOP=\"$(CDE_INSTALLATION_TOP)\" \ -DCDE_LOGFILES_TOP=\"$(CDE_LOGFILES_TOP)\" \ - -I/usr/include/freetype2 -DBINDIR=\"$(XBINDIR)\" \ + $(FREETYPE_CFLAGS) -DBINDIR=\"$(XBINDIR)\" \ -DXDMDIR=\"$(XDMDIR)\" \ -DKORNSHELL=$(KSH) -DUNIXCONN -DTCPCONN -DXDMCP @@ -49,11 +49,11 @@ dtchooser_SOURCES = chooser.c dtchooser.c vglogo.c vgutil.c vgcallback.c \ vglang.c dtlogin_LDADD = libresource.a @DTCLIENTLIBS@ -lXau -lXmu -lXext -lXdmcp \ - $(XTOOLLIB) $(TIRPCLIB) + $(FREETYPE_LIBS) $(XTOOLLIB) $(TIRPCLIB) -dtgreet_LDADD = $(DTCLIENTLIBS) $(XTOOLLIB) +dtgreet_LDADD = $(DTCLIENTLIBS) $(FREETYPE_LIBS) $(XTOOLLIB) -dtchooser_LDADD = $(DTCLIENTLIBS) $(XTOOLLIB) -lXmu -lXext -lXdmcp $(XTOOLLIB) +dtchooser_LDADD = $(DTCLIENTLIBS) $(FREETYPE_LIBS) -lXmu -lXext -lXdmcp $(XTOOLLIB) if LINUX -- 2.25.1