summaryrefslogtreecommitdiff
path: root/coreconf/AIX.mk
blob: e158a6a41dda95d9c63a9df82eb12415c126c6a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Config stuff for AIX.

include $(CORE_DEPTH)/coreconf/UNIX.mk

#
# There are two implementation strategies available on AIX:
# pthreads, and pthreads-user.  The default is pthreads.
# In both strategies, we need to use pthread_user.c, instead of
# aix.c.  The fact that aix.c is never used is somewhat strange.
# 
# So we need to do the following:
# - Default (PTHREADS_USER not defined in the environment or on
#   the command line):
#   Set PTHREADS_USER=1, USE_PTHREADS=1
# - PTHREADS_USER=1 set in the environment or on the command line:
#   Do nothing.
#
ifeq ($(PTHREADS_USER),1)
	USE_PTHREADS =            # just to be safe
	IMPL_STRATEGY = _PTH_USER
else
	USE_PTHREADS = 1
	PTHREADS_USER = 1
endif

DEFAULT_COMPILER = xlc_r

CC		= xlc_r
CCC		= xlC_r

CPU_ARCH	= rs6000

RANLIB		= ranlib

OS_CFLAGS	= -DAIX -DSYSV
OS_LIBS 	+= -blibpath:/usr/lib:/lib -lc -lm

DSO_LDOPTS	= -brtl -bnortllib -bM:SRE -bnoentry
MKSHLIB 	= $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm

AIX_WRAP	= $(DIST)/lib/aixwrap.o
AIX_TMP		= $(OBJDIR)/_aix_tmp.o

ifdef MAPFILE
DSO_LDOPTS	+= -bexport:$(MAPFILE)
else
DSO_LDOPTS	+= -bexpall
endif

PROCESS_MAP_FILE = grep -v ';+' $< | grep -v ';-' | \
                sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' > $@

ifdef BUILD_OPT
	OPTIMIZER += -qmaxmem=-1
endif

ifeq ($(USE_64), 1)
	OS_CFLAGS	+= -DAIX_64BIT
	OBJECT_MODE=64
	export OBJECT_MODE
endif