freetype: redo the way we detect and use
authorJon Trulson <jon@radscan.com>
Mon, 6 Jan 2020 00:49:02 +0000 (17:49 -0700)
committerJon Trulson <jon@radscan.com>
Mon, 6 Jan 2020 01:11:52 +0000 (18:11 -0700)
We (configure) relies on freetype-config existing and telling us what
the proper includes and libs are.

cde/configure.ac
cde/lib/DtWidget/Makefile.am
cde/programs/dtfile/Makefile.am
cde/programs/dtlogin/Makefile.am

index 6173479b78fe9914b8566185d4a3cb8bf69fed55..c7b5dc1fe9e685d07d7aabfc2c400a416eab987d 100644 (file)
@@ -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([
index 0726f6ce083d6133cfecd7324bc8b0c506013491..e09f4f5eae539abd9fefcdba9cb63eb8ab8b317e 100644 (file)
@@ -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
 
 
index 2ce5f47493c7b4941febc1d3d2694e87895de3d0..2cc109071d5a2ea729c23f3a499be53e3a4c5e1c 100644 (file)
@@ -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
index cdb3309e2df40fea862b374aef96868b13538c09..9551513dcaffd5b1c2cabfc2ea72226856906aa1 100644 (file)
@@ -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