Makefile 3.49 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Copyright 1996 Acorn Computers Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
15 16 17 18 19 20 21
# Makefile for tboxlib and debuglib
#
# ***********************************
# ***    C h a n g e   L i s t    ***
# ***********************************
# Date       Name         Description
# ----       ----         -----------
22
# 09 Oct 1997  RWB        Tidied up old Toolbox.Common build
23
#
24

25 26 27
#
# Paths
#
28
LIBDIR  = <Lib$Dir>
29 30
EXP_HDR = <export$dir>

31 32 33
#
# Generic options:
#
Stewart Brodie's avatar
Stewart Brodie committed
34
MKDIR   = do mkdir -p
35 36 37 38 39
AS      = objasm
CC      = cc
CMHG    = cmhg
CP      = copy
LD      = link
40
RM      = remove
41
WIPE    = -wipe
42
XWIPE   = x wipe
43
CD      = dir
44 45
LIBFILE = libfile

46 47
CFLAGS   = -c -depend !Depend -Wap -zps0 ${INCLUDES} -ffah ${DFLAGS}
CFLAGSZM = -c -depend !Depend -Wap -zps1 ${INCLUDES} -ffah ${DFLAGS} -zM
48 49 50
CPFLAGS  = ~cfr~v
WFLAGS   = ~c~v
LIBFILEFLAGS = -c -o $@
51

52
CCZM=           ${CC} ${CFLAGSZM}
53

54 55 56
#
# Libraries
#
57 58 59 60 61 62
CLIB            = CLIB:o.stubs
RLIB            = RISCOSLIB:o.risc_oslib
RSTUBS          = RISCOSLIB:o.rstubs
ROMSTUBS        = RISCOSLIB:o.romstubs
ROMCSTUBS       = RISCOSLIB:o.romcstubs
ABSSYM          = RISC_OSLib:o.AbsSym
63 64 65
#
# Include files
#
66 67
INCLUDES        = -IC:,<Lib$Dir>.tboxlibint.
DFLAGS          =
68

69 70 71
# Program specific options:
#
TBOXLIB   = tboxlib
Richard Buckley's avatar
Richard Buckley committed
72
TBOXLIBZM = tboxlibm
73
DEBUGLIB  = debuglib
Richard Buckley's avatar
Richard Buckley committed
74
DEBUGLIBZM = debuglibm
75

Richard Buckley's avatar
Richard Buckley committed
76
EXPORTS     = ${LIBDIR}.tboxlibint
77

78 79
OBJ      = o.mem o.messages o.string32 o.rmensure o.objmodule o.objsupport o.slist o.toolboxmem
OBJZM    = z.mem z.messages z.string32 z.rmensure z.objmodule z.objsupport z.slist z.toolboxmem
80

81
DBG_OBJ   = o.debug
Richard Buckley's avatar
Richard Buckley committed
82
DBG_OBJZM = z.debug
83 84 85 86 87 88 89

#
# Rule patterns
#
.SUFFIXES: .z .o .c .s
.c.o:;      ${CC} ${CFLAGS} -o $@ $<
.c.z:;      ${CCZM} -c -o $@ $<
90 91
.s.o:;      ${AS} ${ASFLAGS} -o $@ $<
.s.z:;      ${AS} ${ASFLAGS} -o $@ $<
92 93 94 95 96 97 98 99 100 101 102 103 104 105

#
# Build
#

${TBOXLIB}: ${OBJ}
	${LIBFILE} ${LIBFILEFLAGS} ${OBJ}

${TBOXLIBZM}: ${OBJZM}
	${LIBFILE} ${LIBFILEFLAGS} ${OBJZM}

${DEBUGLIB}: ${OBJ} ${DBG_OBJ}
	${LIBFILE} ${LIBFILEFLAGS} ${OBJ} ${DBG_OBJ}

Stewart Brodie's avatar
Stewart Brodie committed
106 107
${DEBUGLIBZM}: ${OBJZM} ${DBG_OBJZM}
	${LIBFILE} ${LIBFILEFLAGS} ${OBJZM} ${DBG_OBJZM}
108

109
clean: dirs
110 111 112 113 114 115
	${XWIPE} o.* ${WFLAGS}
	${XWIPE} z.* ${WFLAGS}
	${XWIPE} ${DEBUGLIB} ${WFLAGS}
	${XWIPE} ${DEBUGLIBZM} ${WFLAGS}
	${XWIPE} ${TBOXLIB} ${WFLAGS}
	${XWIPE} ${TBOXLIBZM} ${WFLAGS}
116 117 118
	@echo ${DEBUGLIB} and ${TBOXLIB}: cleaned

export: export_${PHASE}
119

120
export_hdrs: dirs
Richard Buckley's avatar
Richard Buckley committed
121 122
	${CP} objects   ${EXPORTS}.objects   ${CPFLAGS}
	${CP} h.*       ${EXPORTS}.h.*   ${CPFLAGS}
123
	${CP} hdr.*     ${EXP_HDR}.*    ${CPFLAGS}
Stewart Brodie's avatar
Stewart Brodie committed
124
	${CP} VersionNum ${EXPORTS}.LibVersion ${CPFLAGS}
125
	@echo ${DEBUGLIB} and ${TBOXLIB}: export complete (hdrs)
126

127 128 129 130 131 132 133 134 135 136 137 138 139 140
export_libs: ${TBOXLIB} ${TBOXLIBZM} ${DEBUGLIB} ${DEBUGLIBZM} dirs
	${CP} ${TBOXLIB}    ${EXPORTS}.o.${TBOXLIB}    ${CPFLAGS}
	${CP} ${TBOXLIBZM}  ${EXPORTS}.o.${TBOXLIBZM}  ${CPFLAGS}
	${CP} ${DEBUGLIB} ${EXPORTS}.o.${DEBUGLIB} ${CPFLAGS}
	${CP} ${DEBUGLIBZM} ${EXPORTS}.o.${DEBUGLIBZM} ${CPFLAGS}
	@echo ${DEBUGLIB} and ${TBOXLIB}: export complete (libs)


dirs:
	${MKDIR} ${LIBDIR}
	${MKDIR} ${EXPORTS}
	${MKDIR} ${EXPORTS}.h
	${MKDIR} ${EXPORTS}.o
#
141
# Dynamic dependencies: