freebsd-ports/x11-toolkits/jx/Makefile
Ade Lovett 3f651573ad Whoa there, boy, that's a mighty big commit y'all have there...
Begin autotools sanitization sequence by requiring ports to explicitly
specify which version of {libtool,autoconf,automake} they need, erasing
the concept of a "system default".

For ports-in-waiting:

	USE_LIBTOOL=YES		->	USE_LIBTOOL_VER=13
	USE_AUTOCONF=YES	->	USE_AUTOCONF_VER=213
	USE_AUTOMAKE=YES	->	USE_AUTOMAKE_VER=14

Ports attempting to use the old style system after June 1st 2004 will be
sorely disappointed.
2004-03-14 06:17:56 +00:00

264 lines
6.9 KiB
Makefile

# New ports collection makefile for: JX
# Date created: 30 July 1999
# Whom: Davec <davec@unforgettable.com>
#
# $FreeBSD$
#
PORTNAME= JX
PORTVERSION= 1.5.3
PORTREVISION= 2
CATEGORIES= x11-toolkits
MASTER_SITES= ftp://ftp.matrix.com.br/pub/linuxberg/files/x11/dev/ \
${MASTER_SITE_SUNSITE}
MASTER_SITE_SUBDIR= libs/X/c++libs
DISTNAME= ${PORTNAME}_source-${PORTVERSION}
MAINTAINER= ports@FreeBSD.org
COMMENT= A C++ application framework and widget library for X11
LIB_DEPENDS= png.5:${PORTSDIR}/graphics/png
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USE_AUTOCONF_VER= 213
USE_REINPLACE= yes
USE_X_PREFIX= yes
USE_XPM= yes
USE_BISON= yes
GNU_CONFIGURE= yes
CONFIGURE_WRKSRC= ${WRKDIR}
USE_GMAKE= yes
MAKE_ARGS= CC="${CC}" CXX="${CXX}" \
CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
MAKE_ENV= JX_INSTALL_ROOT="${PREFIX}/bin" \
JX_LIB_ROOT="${PREFIX}/lib"
PLIST_SUB= LIBACE="${LIBACE}" \
LIBJTOOL="${LIBJTOOL}" \
LIBJX="${LIBJX}"
INSTALLS_SHLIB= yes
# Installs dir with proper permissions
INSTALL_DATA_DIR= ${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} -m 755
# the libraries
LIBFILES= libACE-5_0_2.so \
libjcore-1_5_3.a libjcore-1_5_3.so \
libjx-1_5_3.a libjx-1_5_3.so
# bin program files
PROGRAMFILES= lib/util/autodoc/autodoc programs/jxlayout/jxlayout \
programs/makemake/makemake
PROGRAMFILES_SCRIPT= jxlayout/jfdesign makemake/makecheck \
makemake/maketouch
# header files
INCLUDEDIR= jcore jx
INCLUDEDIR_ACE_WRKSRC= ACE/ACE_wrappers/ace
INCLUDEDIR_ACE_DIR= . CLASSIX
# documentation
DOCDIR_PREFIX= ${PREFIX}/share/doc/jx
DOCFILES= README FAQ LICENSE CHANGES
DOCDIRS= ACE jxlayout makemake
DOCDIRFILES= LICENSE README
# examples
EXAMPLEDIRS= tutorial
EXAMPLEDIR_PREFIX= ${PREFIX}/share/examples/jx
# xpm images
ICONDIRS= libjx/menu_image
ICONDIR_PREFIX= ${PREFIX}/share/jx
# additional configuration and header files
EXTRALIB_PREFIX= ${PREFIX}/lib/jx
EXTRALIBDIRS= jxlayout lib make
EXTRALIBFILES_JXLAYOUT= class_map need_font_list option_map
EXTRALIBFILES_MAKE_WRKSRC= include/make
EXTRALIBFILES_MAKE_DIR= . sys
# odd behavior
POSTBUILD_WRKSRC= jxlayout
# post patch preprocessing
POSTPATCH_FILES= post-patch-aa
# post configure placement directory
POSTCONFIGURE_WRKSRC= include/make/sys
# configuration preprocessing
CONFIGURE_PREPROCESSING_FILES= FreeBSD-2.x_g++ FreeBSD-3.x_g++
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 300000
ALL_TARGET= freebsd3.x
LIBACE= 5
LIBJTOOL= 0
LIBJX= 1
.else
ALL_TARGET= freebsd2.x
LIBACE= 5.0
LIBJTOOL= 0.5
LIBJX= 1.5
.endif
# -CURRENT post gcc 3.1
.if ${OSVERSION} >= 500035
BROKEN= Does not work with gcc 3.x
.endif
# wrapper to allow makemake to work during build time
# it requires some libs which are not available in build time
makemake-extract-wrapper:
@${SED} \
-e 's|%libdir%|${WRKSRC}/lib|' \
-e 's|%makemake%|${WRKSRC}/programs/makemake/makemake|' \
${FILESDIR}/makemake-template \
> ${WRKDIR}/makemake
@${CHMOD} u+rx ${WRKDIR}/makemake
# have all relevant places point to location of the makemake wrapper
makemake-patch-path:
@${FIND} ${WRKSRC}/libjx ${WRKSRC}/libjcore \
-name "Make*" \
-exec ${REINPLACE_CMD} -E \
-e 's|makemake;|${WRKDIR}/makemake;|' \
{} \;
@${REINPLACE_CMD} -E \
-e 's|; makemake;|; ${WRKDIR}/makemake;|' \
${WRKSRC}/lib/Makefile
post-extract: makemake-extract-wrapper
post-patch: makemake-patch-path
.for i in ${CONFIGURE_PREPROCESSING_FILES}
@${CP} ${WRKSRC}/${POSTCONFIGURE_WRKSRC}/${i} ${WRKDIR}/${i}.in
@cd ${WRKDIR}; ${PATCH} -s ${i}.in < ${PATCHDIR}/${POSTPATCH_FILES}
.endfor
pre-configure:
@${CP} ${FILESDIR}/configure.in ${WRKDIR}
@cd ${WRKDIR}; ${AUTOCONF}
post-configure:
.for i in ${CONFIGURE_PREPROCESSING_FILES}
@${CP} ${WRKDIR}/${i} ${WRKSRC}/${POSTCONFIGURE_WRKSRC}/${i}
.endfor
# odd behavior
post-build:
.for i in ${POSTBUILD_WRKSRC}
@cd ${WRKSRC}/programs/${i}; ${SETENV} ${MAKE_ENV} ${GMAKE} \
${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS}
.endfor
do-install:
.if !defined(NOPORTDOCS)
# Install all documentation
@${INSTALL_DATA_DIR} ${DOCDIR_PREFIX}
.for i in ${DOCFILES}
@${INSTALL_DATA} ${WRKSRC}/${i} ${DOCDIR_PREFIX}
.endfor
.for i in ${DOCDIRS}
@for j in ${DOCDIRFILES} ; \
do \
if [ -f ${WRKSRC}/programs/${i}/$${j} ]; \
then \
${INSTALL_DATA} ${WRKSRC}/programs/${i}/$${j} \
${DOCDIR_PREFIX}/$${j}_${i} ; \
elif [ -f ${WRKSRC}/${i}/$${j} ]; \
then \
${INSTALL_DATA} ${WRKSRC}/${i}/$${j} \
${DOCDIR_PREFIX}/$${j}_${i} ; \
fi ; \
done
.endfor
@${INSTALL_DATA} ${WRKSRC}/doc/* ${DOCDIR_PREFIX}
@${INSTALL_DATA} ${WRKSRC}/ACE/ACE_wrappers/VERSION \
${DOCDIR_PREFIX}/ACE_VERSION
# Install all examples
.for i in ${EXAMPLEDIRS}
@${INSTALL_DATA_DIR} ${EXAMPLEDIR_PREFIX}/${i} ; \
cd ${WRKSRC}/${i}; \
for j in * ; \
do \
if [ -f $${j} ]; \
then \
${INSTALL_DATA} $${j} ${EXAMPLEDIR_PREFIX}/${i} ; \
elif [ -d $${j} ]; \
then \
${INSTALL_DATA_DIR} ${EXAMPLEDIR_PREFIX}/${i}/$${j} ; \
for k in $${j}/* ; \
do \
${INSTALL_DATA} $${k} ${EXAMPLEDIR_PREFIX}/${i}/$${j} ; \
done; \
fi ; \
done
.endfor
.endif # !defined(NOPORTDOCS)
# Install all icons
.for i in ${ICONDIRS}
@${INSTALL_DATA_DIR} ${ICONDIR_PREFIX} ; \
for j in ${WRKSRC}/${i}/*.xpm ; \
do \
${INSTALL_DATA} $${j} ${ICONDIR_PREFIX} ; \
done
.endfor
# Install all header files
.for i in ${INCLUDEDIR}
@${INSTALL_DATA_DIR} ${PREFIX}/include/${i} ; \
for j in ${WRKSRC}/include/${i}/*.*h \
${WRKSRC}/include/${i}/*.tmpl \
${WRKSRC}/include/${i}/*.tmpls ; \
do \
if [ -f $${j} ]; \
then \
${INSTALL_DATA} $${j} ${PREFIX}/include/${i}/ ; \
fi ; \
done
.endfor
.for i in ${INCLUDEDIR_ACE_DIR}
@${INSTALL_DATA_DIR} ${PREFIX}/include/ace/${i} ; \
for j in ${WRKSRC}/${INCLUDEDIR_ACE_WRKSRC}/${i}/*.cpp \
${WRKSRC}/${INCLUDEDIR_ACE_WRKSRC}/${i}/*.h \
${WRKSRC}/${INCLUDEDIR_ACE_WRKSRC}/${i}/*.i ; \
do \
if [ -f $${j} ]; \
then \
${INSTALL_DATA} $${j} ${PREFIX}/include/ace/${i}/ ; \
fi ; \
done
.endfor
# Install all libraries
.for i in ${LIBFILES}
@${INSTALL_PROGRAM} ${WRKSRC}/lib/${i} ${PREFIX}/lib
.endfor
# Install additional library files
.for i in ${EXTRALIBDIRS}
@${INSTALL_DATA_DIR} ${EXTRALIB_PREFIX}/${i}
.endfor
.for i in ${EXTRALIBFILES_JXLAYOUT}
@${INSTALL_DATA} ${WRKSRC}/programs/jxlayout/${i} \
${EXTRALIB_PREFIX}/jxlayout
.endfor
.for i in ${EXTRALIBFILES_MAKE_DIR}
@${INSTALL_DATA_DIR} ${EXTRALIB_PREFIX}/make/${i} ; \
for j in ${WRKSRC}/${EXTRALIBFILES_MAKE_WRKSRC}/${i}/* ; \
do \
if [ -f $${j} ]; \
then \
${INSTALL_DATA} $${j} ${EXTRALIB_PREFIX}/make/${i}/ ; \
fi ; \
done
.endfor
# Install all programs
.for i in ${PROGRAMFILES}
@${INSTALL_PROGRAM} ${WRKSRC}/${i} ${PREFIX}/bin
.endfor
.for i in ${PROGRAMFILES_SCRIPT}
@${INSTALL_SCRIPT} ${WRKSRC}/programs/${i} ${PREFIX}/bin
.endfor
post-install:
@${LN} -sf libACE-5_0_2.so \
${PREFIX}/lib/libACE-5_0_2.so.${LIBACE}
@${LN} -sf libjcore-1_5_3.so \
${PREFIX}/lib/libjcore-1_5_3.so.${LIBJX}
@${LN} -sf libjx-1_5_3.so \
${PREFIX}/lib/libjx-1_5_3.so.${LIBJX}
.for i in ${LIBFILES}
@${LN} -sf ../../${i} ${EXTRALIB_PREFIX}/lib/${i}
.endfor
.include <bsd.port.post.mk>