summaryrefslogtreecommitdiff
path: root/libthreads/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'libthreads/Makefile')
-rw-r--r--libthreads/Makefile226
1 files changed, 226 insertions, 0 deletions
diff --git a/libthreads/Makefile b/libthreads/Makefile
new file mode 100644
index 00000000..be9346f3
--- /dev/null
+++ b/libthreads/Makefile
@@ -0,0 +1,226 @@
+#
+# Mach Operating System
+# Copyright (c) 1991,1990,1989 Carnegie Mellon University
+# All Rights Reserved.
+#
+# Permission to use, copy, modify and distribute this software and its
+# documentation is hereby granted, provided that both the copyright
+# notice and this permission notice appear in all copies of the
+# software, derivative works or modified versions, and any portions
+# thereof, and that both notices appear in supporting documentation.
+#
+# CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+# CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+# ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+#
+# Carnegie Mellon requests users of this software to return to
+#
+# Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+# School of Computer Science
+# Carnegie Mellon University
+# Pittsburgh PA 15213-3890
+#
+# any improvements or extensions that they make and grant Carnegie Mellon
+# the rights to redistribute these changes.
+#
+#
+# HISTORY
+# $Log: Makefile,v $
+# Revision 2.18 91/12/10 16:33:11 jsb
+# New files from Intel
+# [91/12/10 16:19:40 jsb]
+#
+# Revision 2.17 91/09/04 11:29:10 jsb
+# Use cc860 for i860.
+# [91/09/04 11:23:25 jsb]
+#
+# From Intel SSD: Added I860_CPP for i860 support.
+# [91/09/02 08:57:36 jsb]
+#
+# Revision 2.16 91/08/24 12:32:09 af
+# Added MACHINE_CFLAGS switch to support the -Wf,-XNk150 flag for
+# mips string space. Apparently "danner/n3" is enough longer than
+# "dbg" to exhaust string space.
+# [91/08/21 danner]
+# Added better cpp technology to deal with gcc limitations.
+# Currently only an issue on luna88k.
+# [91/07/26 danner]
+# Made use of -ES vs. -E machine dependent, as luna88k does not
+# like -ES.
+# [91/07/19 danner]
+#
+# Revision 2.15.2.2 91/08/21 17:23:08 danner
+# Added MACHINE_CFLAGS switch to support the -Wf,-XNk150 flag for
+# mips string space. Apparently "danner/n3" is enough longer than
+# "dbg" to exhaust string space.
+# [91/08/21 danner]
+#
+# Revision 2.15.2.1 91/08/19 13:49:22 danner
+# Added better cpp technology to deal with gcc limitations.
+# Currently only an issue on luna88k.
+# [91/07/26 danner]
+# Made use of -ES vs. -E machine dependent, as luna88k does not
+# like -ES.
+# [91/07/19 danner]
+#
+# Revision 2.15 91/07/31 18:32:16 dbg
+# Directly compile C files if INLINE is null (depends
+# on the machine).
+# Remove IBMRT-dependent fiddling for malloc.
+# [91/07/30 17:32:13 dbg]
+#
+# Revision 2.14 91/05/14 17:55:53 mrt
+# Correcting copyright
+#
+# Revision 2.13 91/02/14 14:19:15 mrt
+# Added new Mach copyright
+# [91/02/13 12:41:48 mrt]
+#
+# Revision 2.12 90/11/05 14:36:32 rpd
+# Change MACHINE to TARGET_MACHINE.
+# [90/10/29 rwd]
+#
+# Revision 2.11 90/09/09 14:34:39 rpd
+# Remove call.o
+# [90/08/24 rwd]
+#
+# Revision 2.10 90/06/02 15:13:30 rpd
+# Compile with -DMACH_IPC_COMPAT=0.
+# [90/03/26 23:29:39 rpd]
+#
+# Revision 2.9 90/05/29 18:40:08 rwd
+# Fix PMAX_ASFLAGS.
+# [90/05/22 rwd]
+#
+# Revision 2.8 90/05/03 15:54:28 dbg
+# Use -ES switch to preprocess assembler files.
+# Not all machines' 'cc' can directly assemble .s files.
+# [90/04/23 dbg]
+#
+# Revision 2.7 90/01/19 14:36:46 rwd
+# Added call.o
+# [90/01/03 rwd]
+#
+# Revision 2.6 89/12/08 19:53:01 rwd
+# Use ASFLAGS for assembler, the mips one wants to know which
+# optimization level the C code was compiled at.
+# [89/12/06 af]
+#
+# Changed CFLAGS to remove -g and add -O
+# [89/10/24 rwd]
+# Worked over for new merged coroutine-thread version. Removed
+# task version.
+# [89/10/24 rwd]
+#
+#
+
+LIB = libthreads.a
+
+COMMONFLAGS = -I. -DMACH_IPC_COMPAT=0
+COPTS = -MD $(COMMONFLAGS) $(PROFILE)
+CPPFLAGS = ${COPTS}
+CPPSWITCH = -ES
+DEFAULT_CPP = $(CC) $(CPPSWITCH) $(CPPFLAGS)
+
+PMAX_CFLAGS = -Wf,-XNk150
+PMAX_ASFLAGS= -O -nocpp
+
+LUNA88K_CPP = cpp ${COPTS}
+
+I860_CPP = /lib/cpp ${COPTS}
+I860_CC = cc860
+I860_AS = as860
+I860_AR = ar860
+I860_RANLIB = ranlib860
+
+CFLAGS = ${${TARGET_MACHINE}_CFLAGS} -O ${COPTS}
+ASFLAGS = ${${TARGET_MACHINE}_ASFLAGS}
+NCPP = $($(TARGET_MACHINE)_CPP?$($(TARGET_MACHINE)_CPP):$(DEFAULT_CPP)
+CC = $($(TARGET_MACHINE)_CC?$($(TARGET_MACHINE)_CC):cc)
+AS = $($(TARGET_MACHINE)_AS?$($(TARGET_MACHINE)_AS):as)
+AR = $($(TARGET_MACHINE)_AR?$($(TARGET_MACHINE)_AR):ar)
+RANLIB = $($(TARGET_MACHINE)_RANLIB?$($(TARGET_MACHINE)_RANLIB):ranlib)
+
+I = -c -d -v
+
+# Use the following definition to enable inline expansion.
+#VAX_INLINE = awk -f cthread_inline.awk
+#SUN3_INLINE = awk -f cthread_inline.awk
+
+INLINE = ${${TARGET_MACHINE}_INLINE}
+
+INLINE_C_RULE = \
+ $(CC) $(CFLAGS) -S $*.c && \
+ $(MV) $*.s $*.S && \
+ $(INLINE) $*.S > $*.s && \
+ $(AS) $(ASFLAGS) -o $@ $*.s && \
+ $(RM) $(RMFLAGS) $*.s $*.S
+
+NORMAL_C_RULE = \
+ $(CC) $(CFLAGS) -c -o $@ $*.c
+
+C_RULE = ${${TARGET_MACHINE}_INLINE?${INLINE_C_RULE}:${NORMAL_C_RULE}}
+
+.SUFFIXES: .c .o
+
+.c.o:
+ ${C_RULE}
+
+SRCS = cprocs.c cthreads.c malloc.c \
+ mig_support.c stack.c sync.c \
+ machine/thread.c
+
+OBJS = $(LIB)(cprocs.o) $(LIB)(cthreads.o) $(LIB)(malloc.o) \
+ $(LIB)(mig_support.o) $(LIB)(stack.o) $(LIB)(sync.o) \
+ $(LIB)(thread.o) $(LIB)(lock.o) $(LIB)(csw.o)
+
+lib: $(LIB)
+
+include: machine ckdir
+ mach_install $I cthreads.h $(DSTBASE)/include
+
+machine:
+ -if [ -d machine ]; then true; else ln -s $(machine) machine; fi
+
+clean:
+ $(RM) $(RMFLAGS) machine lib*.a Makedep* a.out core errs \
+ *.d *.s *.S *.o *.BAK *.CKP */*.BAK */*.CKP
+
+#
+# Get inline expansion file before we do anything else.
+#
+.INIT: cthread_inline.awk
+
+cthread_inline.awk: machine/cthread_inline.awk
+ -if [ -f $@ ]; then chmod 644 $@; else true; fi
+ cp -p machine/$@ $@
+
+# The following are the "generic" rules,
+# parameterized by LIB, IMPL, and PROFILE.
+
+$(LIB): $(OBJS)
+ $(AR) r$(ARFLAGS) $(LIB) $?
+ $(RANLIB) $(LIB)
+ $(RM) $(RMFLAGS) $?
+# Avoid complaints from md in case Makedep doesn't exist yet.
+ touch Makedep
+ md -m Makedep -d *.d
+# Massage dependency file to reflect object files within library.
+ cp Makedep Makedep.BAK
+ sed 's/^[^ #$$]*\.o/$$(LIB)(&)/' < Makedep.BAK > Makedep
+ rm Makedep.BAK
+
+$(LIB)(thread.o): machine/thread.c
+ $(CC) $(CFLAGS) -c machine/thread.c
+
+$(LIB)(lock.o): machine/lock.s
+ $(NCPP)machine/lock.s > $*.as
+ $(AS) $(ASFLAGS) -o $@ $*.as
+ $(RM) $(RMFLAGS) $*.as
+
+$(LIB)(csw.o): machine/csw.s
+ $(NCPP) machine/csw.s > $*.as
+ $(AS) $(ASFLAGS) -o $@ $*.as
+ $(RM) $(RMFLAGS) $*.as
+
+-include Makedep