diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2011-08-03 13:08:00 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2011-08-05 16:31:17 -0700 |
commit | ea28a79de4eb4b2b5dc270acfc2f12b5ec76cda1 (patch) | |
tree | d5615c63d5ecf965fe932799829c8640deb39932 | |
parent | 9a10f52f031045150c6e1d3a1e7a7266d530333b (diff) |
Convert build system to GNU autotools.
Now that glw doesn't live inside Mesa, it needs its own build system.
We may as well use GNU autotools.
Also add a .gitignore file.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r-- | .gitignore | 19 | ||||
-rw-r--r-- | Makefile | 74 | ||||
-rw-r--r-- | Makefile.am | 43 | ||||
-rwxr-xr-x | autogen.sh | 6 | ||||
-rw-r--r-- | configure.ac | 115 | ||||
-rw-r--r-- | glw.pc.in | 14 |
6 files changed, 190 insertions, 81 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f048a74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +.deps/ +.libs/ +Makefile +Makefile.in +aclocal.m4 +autom4te.cache/ +compile +config.guess +config.log +config.status +config.sub +configure +depcomp +glw.pc +install-sh +libtool +ltmain.sh +missing +libGLW.la diff --git a/Makefile b/Makefile deleted file mode 100644 index 776b1aa..0000000 --- a/Makefile +++ /dev/null @@ -1,74 +0,0 @@ -# src/glw/Makefile - -TOP = ../.. -include $(TOP)/configs/current - -MAJOR = 1 -MINOR = 0 -TINY = 0 - -INCDIRS = -I$(TOP)/include $(MOTIF_CFLAGS) $(X11_INCLUDES) - - -OBJECTS = $(GLW_SOURCES:.c=.o) - - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCDIRS) $(CFLAGS) $(GLW_CFLAGS) $< - - - -##### TARGETS ##### - -default: $(TOP)/$(LIB_DIR)/$(GLW_LIB_NAME) - -# GLU pkg-config file -pcedit = sed \ - -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \ - -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \ - -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \ - -e 's,@VERSION@,$(MAJOR).$(MINOR).$(TINY),' \ - -e 's,@GLW_PC_REQ_PRIV@,$(GLW_PC_REQ_PRIV),' \ - -e 's,@GLW_PC_LIB_PRIV@,$(GLW_PC_LIB_PRIV),' \ - -e 's,@GLW_PC_CFLAGS@,$(GLW_PC_CFLAGS),' \ - -e 's,@GLW_LIB@,$(GLW_LIB),' -glw.pc: glw.pc.in - $(pcedit) $< > $@ - -install: glw.pc - $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL - $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) - $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig - $(INSTALL) -m 644 *.h $(DESTDIR)$(INSTALL_INC_DIR)/GL - $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLW_LIB_GLOB) $(DESTDIR)$(INSTALL_LIB_DIR) - $(INSTALL) -m 644 glw.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig - -clean: - -rm -f depend depend.bak - -rm -f *.o *.pc *~ - - -# Make the library -$(TOP)/$(LIB_DIR)/$(GLW_LIB_NAME): $(OBJECTS) - $(MKLIB) -o $(GLW_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ - -major $(MAJOR) -minor $(MINOR) -patch $(TINY) \ - $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \ - -id $(INSTALL_LIB_DIR)/lib$(GLW_LIB).$(MAJOR).dylib \ - $(GLW_LIB_DEPS) $(OBJECTS) - - -# -# Run 'make depend' to update the dependencies if you change what's included -# by any source file. -# -depend: $(GLW_SOURCES) - rm -f depend - touch depend - $(MKDEP) $(MKDEP_OPTIONS) -I$(TOP)/include $(GLW_SOURCES) \ - $(X11_INCLUDES) > /dev/null - - --include depend diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..4f8bb04 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,43 @@ +# Copyright © 2011 Intel Corporation +# +# 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, 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 (including the next +# paragraph) 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 AUTHORS OR 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. + +AUTOMAKE_OPTIONS = foreign + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = glw.pc + +GLW_LIBRARY_VERSION=1:0:0 +lib_LTLIBRARIES = libGLw.la +libGLw_la_SOURCES = GLwDrawA.c +libGLw_la_CFLAGS = $(GLW_CLFAGS) +libGLw_la_LIBADD = $(GLW_LIBS) +libGLw_la_LDFLAGS = -version-info $(GLW_LIBRARY_VERSION) +if ENABLE_MOTIF +libGLw_la_SOURCES += GLwMDrawA.c +libGLw_la_CFLAGS += $(MOTIF_CFLAGS) +libGLw_la_LIBADD += $(MOTIF_LIBS) +endif +library_includedir=$(includedir)/GL/ +library_include_HEADERS=GLwDrawA.h GLwDrawAP.h GLwMDrawA.h GLwMDrawAP.h + +clean: + -rm -f *.o *.lo *.la *~ + -rm -rf .libs diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..30d679f --- /dev/null +++ b/autogen.sh @@ -0,0 +1,6 @@ +#! /bin/sh + +test -n "$srcdir" || srcdir=`dirname "$0"` +test -n "$srcdir" || srcdir=. +autoreconf --force --install --verbose "$srcdir" +test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..8d46a11 --- /dev/null +++ b/configure.ac @@ -0,0 +1,115 @@ +# Copyright © 2011 Intel Corporation +# +# 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, 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 (including the next +# paragraph) 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 AUTHORS OR 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. + +dnl Process this file with autoconf to create configure. + +AC_PREREQ([2.59]) +AC_INIT([glw], [1.0.0], + [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE([dist-bzip2]) + +dnl Check for progs +AC_PROG_CPP +AC_PROG_CC +AC_PROG_LIBTOOL +AM_PROG_CC_C_O + +# Enable quiet compiles on automake 1.11. +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +dnl Make sure the pkg-config macros are defined +m4_ifndef([PKG_PROG_PKG_CONFIG], + [m4_fatal([Could not locate the pkg-config autoconf macros. + These are usually located in /usr/share/aclocal/pkg.m4. If your macros + are in a different location, try setting the environment variable + ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])]) +PKG_PROG_PKG_CONFIG() + +AC_ARG_ENABLE([motif], + [AS_HELP_STRING([--enable-motif], + [use Motif widgets @<:@default=disabled@:>@])], + [enable_motif="$enableval"], + [enable_motif=no]) +AM_CONDITIONAL([ENABLE_MOTIF], [test "$enable_motif" = yes]) + +dnl Get the pkg-config definitions for libGL. We include a fallback +dnl path for GL implementation that don't provide a .pc file +PKG_CHECK_MODULES(GL, [gl], [], [ + AC_CHECK_HEADER([GL/gl.h], + [], + AC_MSG_ERROR([GL not found])) + AC_CHECK_LIB([GL], + [glBegin], + [GL_LIBS=-lGL], + AC_MSG_ERROR([GL required])) + ]) + +PKG_CHECK_MODULES([GLW],[x11 xt]) + +MOTIF_CFLAGS= +if test "x$enable_motif" = xyes; then + AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no]) + if test "x$MOTIF_CONFIG" != xno; then + MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags` + MOTIF_LIBS=`$MOTIF_CONFIG --libs` + else + AC_CHECK_HEADER([Xm/PrimitiveP.h], [], + [AC_MSG_ERROR([Can't locate Motif headers])]) + AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"], + [AC_MSG_ERROR([Can't locate Motif Xm library])]) + fi + # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11 + GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV" + GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS" +fi + +AC_SUBST([GLW_PC_LIB_PRIV]) +AC_SUBST([GLW_PC_CFLAGS]) + +CFLAGS="$CFLAGS $GL_CFLAGS" +LIBS="$LIBS $GL_LIBS" + +dnl Set up C warning flags. Copy of XORG_CWARNFLAGS. +if test "x$GCC" = xyes ; then + CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ +-Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ +-Wbad-function-cast" + case `$CC -dumpversion` in + 3.4.* | 4.*) + CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" + ;; + esac +else + AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) + if test "x$SUNCC" = "xyes"; then + CWARNFLAGS="-v" + fi +fi +CFLAGS="$CFLAGS $CWARNFLAGS" + +PKG_CHECK_MODULES(X11, [x11 xext], [x11_enabled=yes], [enable_x11=no]) + +AC_CONFIG_FILES([glw.pc]) +AC_OUTPUT([ + Makefile +]) @@ -1,13 +1,13 @@ -prefix=@INSTALL_DIR@ -exec_prefix=${prefix} -libdir=@INSTALL_LIB_DIR@ -includedir=@INSTALL_INC_DIR@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ Name: glw Description: Mesa OpenGL widget library Requires: gl -Requires.private: @GLW_PC_REQ_PRIV@ -Version: @VERSION@ -Libs: -L${libdir} -l@GLW_LIB@ +Requires.private: x11 xt +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -lGLw Libs.private: @GLW_PC_LIB_PRIV@ Cflags: -I${includedir} @GLW_PC_CFLAGS@ |