summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Schultz <kschultz@freedesktop.org>2004-10-01 13:33:26 +0000
committerKarl Schultz <kschultz@freedesktop.org>2004-10-01 13:33:26 +0000
commita16bdb5fb7032aa64d1f4bcb249164211a221560 (patch)
treec9a42c717a268736c8a6188fa3d888b676e38396
parent75672d2e94e351cb8a65069e20cbcc941e046a1a (diff)
Enable builds on AIX 64-bit
-rw-r--r--Makefile1
-rwxr-xr-xbin/mklib25
-rw-r--r--configs/aix-6428
3 files changed, 53 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 1140204e003..8348fb2e662 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ $(TOP)/configs/current:
# Rules to set/install a specific build configuration
aix \
+aix-64 \
aix-gcc \
aix-static \
beos \
diff --git a/bin/mklib b/bin/mklib
index e48ca582d06..59dd0096f4c 100755
--- a/bin/mklib
+++ b/bin/mklib
@@ -372,7 +372,30 @@ case $ARCH in
ar -X64 -ruv ${LIBNAME} ${OBJECTS}
FINAL_LIBS=${LIBNAME}
else
- echo "mklib: PROBLEM: AIX64 shared libs not supported!!!"
+ EXPFILE="lib${LIBNAME}.exp"
+ OFILE=shr.o #Want to be consistent with the IBM libGL.a
+ LIBNAME="lib${LIBNAME}.a" # shared objects are still stored in the .a libraries
+ OPTS="-bE:${EXPFILE} -bM:SRE -bnoentry -q64"
+ rm -f ${EXPFILE} ${OFILE}
+ NM="/bin/nm -eC -X64"
+ echo "#! /usr/lib/${LIBNAME}" > ${EXPFILE}
+ ${NM} ${OBJECTS} | awk '{
+ if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
+ && ( substr($1,1,1) != ".")) {
+ if (substr ($1, 1, 7) != "__sinit" &&
+ substr ($1, 1, 7) != "__sterm") {
+ if (substr ($1, 1, 5) == "__tf1")
+ print (substr ($1, 7))
+ else if (substr ($1, 1, 5) == "__tf9")
+ print (substr ($1, 15))
+ else
+ print $1
+ }
+ }
+ }' | sort -u >> ${EXPFILE}
+ cc ${OPTS} -o ${OFILE} ${OBJECTS} ${DEPS}
+ ar -X64 -r ${LIBNAME} ${OFILE}
+ FINAL_LIBS="${LIBNAME}"
fi
;;
diff --git a/configs/aix-64 b/configs/aix-64
new file mode 100644
index 00000000000..98bb2558f66
--- /dev/null
+++ b/configs/aix-64
@@ -0,0 +1,28 @@
+# Configuration for AIX, dynamic libs
+
+include $(TOP)/configs/default
+
+CONFIG_NAME = aix
+
+# Compiler and flags
+CC = xlc
+CXX = xlC
+
+CFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3
+CXXFLAGS = -O -DAIXV3
+MKLIB_OPTIONS = -arch AIX64
+
+# Library names (actual file names)
+GL_LIB_NAME = libGL.a
+GLU_LIB_NAME = libGLU.a
+GLUT_LIB_NAME = libglut.a
+GLW_LIB_NAME = libGLw.a
+OSMESA_LIB_NAME = libOSMesa.a
+
+GL_LIB_DEPS = -lX11 -lXext -lm
+GLU_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lm -lC
+GLUT_LIB_DEPS = -L$(TOP)/lib -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm
+GLW_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lXt -lX11
+OSMESA_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB)
+APP_LIB_DEPS = -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC
+