Adding support to dynamically link libdyninstRT by using dlopen on sparc-
[dyninst.git] / rtinst / make.module.tmpl
1
2
3 #
4 # Common makefile template for rtinst library.  This file is not
5 # intended to be a useful Makefile in isolation; instead, it should be
6 # included from within an architecture-specific Makefile.
7 #
8 # $Log: make.module.tmpl,v $
9 # Revision 1.11  1997/08/19 19:51:07  naim
10 # Adding support to dynamically link libdyninstRT by using dlopen on sparc-
11 # solaris - naim
12 #
13 # Revision 1.10  1997/02/26 23:52:05  mjrg
14 # First part of WindowsNT port: divided RTposix.c into two files,
15 # RTinst.c which has all platform independent code and RTposix.c with
16 # unix specific code
17 #
18 # Revision 1.9  1996/10/31 08:03:00  tamches
19 # the shm-sampling commit
20 #
21 # Revision 1.8  1996/07/30 19:02:19  mjrg
22 # Changed libdyninstRT.a to libdyninstRT.o
23 # Link libdyninstRT.o with libgcc
24 #
25 # Revision 1.7  1995/08/30  19:35:56  mjrg
26 # Fixed install for cm5 libraries.
27 #
28 # Revision 1.6  1995/08/29  23:21:44  hollings
29 # Fixed missing UNCOMMON_LINK flag.
30 #
31 # Revision 1.5  1995/08/24  15:12:04  hollings
32 # AIX/SP-2 port (including option for split instruction/data heaps)
33 # Tracing of rexec (correctly spawns a paradynd if needed)
34 # Added rtinst function to read getrusage stats (can now be used in metrics)
35 # Critical Path
36 # Improved Error reporting in MDL sematic checks
37 # Fixed MDL Function call statement
38 # Fixed bugs in TK usage (strings passed where UID expected)
39 #
40 # Revision 1.4  1995/05/30  05:16:03  krisna
41 # moved declaration of LIBS to SunOs Makefile.  we do not use libkvm.a
42 # on Solaris, and it is non-existent on HPUX.
43 #
44 # Revision 1.3  1995/02/21  16:27:55  jcargill
45 # Changes to new build system so rtinst builds for all archs
46 #
47 # Revision 1.2  1995/02/16  09:11:29  markc
48 # Added support for RTfirst.o and RTend.o which mark the beginning and end
49 # of DYNINST code.
50 #
51 # Revision 1.1  1995/01/30  18:30:31  jcargill
52 # Major build system reorganization
53 #
54 #
55
56 ifndef TARGET
57 TARGET        = libdyninstRT.o
58 ALT_TARGET    = DYNINSTstartCode.o DYNINSTendCode.o RTpvmPiggy.o RTcriticalPath.o
59 endif
60
61 MODCC         = $(CC)
62 MODCFLAGS     = $(CFLAGS)
63
64 SRCS         += ../src/RTinst.c ../src/RTend.c
65 SRCS2        += ../src/RTend.c
66
67 DYNSRCS       = ../src/DYNINSTstartCode.c \
68                 ../src/DYNINSTendCode.c
69
70 ifdef USES_SHM_SAMPLING
71 CFLAGS  += -DSHM_SAMPLING
72 endif
73
74 all: $(TARGET) $(TARGET2) $(ALT_TARGET)
75
76 #
77 # override standard link rule; libdyninst is not really a library or a program.
78 #
79 UNCOMMON_LINK= true
80
81 OBJS =          $(patsubst %.C, %.o, $(filter %.C,$(notdir $(SRCS)))) \
82                 $(patsubst %.c, %.o, $(filter %.c,$(notdir $(SRCS)))) \
83                 $(patsubst %.s, %.o, $(filter %.s,$(notdir $(SRCS)))) \
84                 $(patsubst %.S, %.o, $(filter %.S,$(notdir $(SRCS)))) \
85                 $(IGEN_GEN_SRCS:%.C=%.o)
86
87 $(TARGET): $(OBJS) $(LIBS)
88         $(LD) $(LDFLAGS) -o $(TARGET) $(OBJS) $(LIBS) -lgcc
89
90 #
91 # override standard install rule; provide a default DEST if not already set
92 #
93 ifndef DEST
94 DEST            = $(TO_CORE)/../lib/$(PLATFORM)
95 endif
96
97 UNCOMMON_INSTALL= true
98 ifdef USES_LIBDYNINSTRT_SO
99 install: $(DEST)/$(TARGET3)
100 else
101 install: $(DEST)/$(TARGET) \
102          $(DEST)/DYNINSTstartCode.o \
103          $(DEST)/DYNINSTendCode.o \
104          $(DEST)/RTpvmPiggy.o
105 endif
106 $(DEST)/libdyninstRT.o:       libdyninstRT.o
107         cp libdyninstRT.o ../../../lib/$(PLATFORM)
108
109 $(DEST)/RTpvmPiggy.o: RTpvmPiggy.o
110         cp RTpvmPiggy.o ../../../lib/$(PLATFORM)
111
112 $(DEST)/DYNINSTstartCode.o: DYNINSTstartCode.o
113         cp DYNINSTstartCode.o ../../../lib/$(PLATFORM)
114
115 $(DEST)/DYNINSTendCode.o: DYNINSTendCode.o
116         cp DYNINSTendCode.o ../../../lib/$(PLATFORM)