summaryrefslogtreecommitdiff
path: root/web/yacco2/o2linker/Makefile
blob: 8cec4c5caa403f8e4ab387f6452b531656aba66e (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
## -*- Makefile -*-
##
## User: root
## Time: Apr 17, 2007 4:35:39 PM
## Makefile created by Sun Studio.
##
## This file is generated automatically.
##

#### Compiler and tool definitions shared by all build targets #####
CCC = CC
CXX = CC
BASICOPTS = -fast -xtarget=opteron -m64  -mt #-xa
CCFLAGS = $(BASICOPTS)  -I'/yacco2/o2linker' -I'/yacco2/compiler/grammars' -I'/yacco2/library/grammars' -I'/yacco2/library'
CXXFLAGS = $(BASICOPTS)
CCADMIN = CCadmin -clean

LDLIBS_o2 = -L '/yacco2/library/yacco2build/dist/Release/Sun12-Solaris-x86' -l yacco2 \
-L '/yacco2/compiler/grammars/o2grammarsbuild/dist/Release/Sun12-Solaris-x86' -l yacco2grammars
# Define the target directories.
TARGETDIR_linker=Sun-x86-Solaris

all: $(TARGETDIR_linker)/o2linker
## Target: linker
OBJS_linker =  $(TARGETDIR_linker)/o2linker.o\
	$(TARGETDIR_linker)/common_externs.o \
	$(TARGETDIR_linker)/yacco2_extn.o \
	$(TARGETDIR_linker)/o2linker_defs.o \
	$(TARGETDIR_linker)/yacco2_stbl.o

# Link or archive
$(TARGETDIR_linker)/o2linker: $(TARGETDIR_linker) $(OBJS_linker)
	$(LINK.cc) -z muldefs -z rescan $(CCFLAGS_linker) $(CPPFLAGS_linker) -o $@ $(OBJS_linker) $(LDLIBS_linker)
 

# Compile source files into .o files
$(TARGETDIR_linker)/common_externs.o: $(TARGETDIR_linker) common_externs.cpp
	$(COMPILE.cc) $(CCFLAGS_linker) $(CPPFLAGS_linker) -o $@ common_externs.cpp
$(TARGETDIR_linker)/yacco2_extn.o: $(TARGETDIR_linker) yacco2_extn.cpp
	$(COMPILE.cc) $(CCFLAGS_linker) $(CPPFLAGS_linker) -o $@ yacco2_extn.cpp

$(TARGETDIR_linker)/o2linker_defs.o: $(TARGETDIR_linker) o2linker_defs.cpp
	$(COMPILE.cc) $(CCFLAGS_linker) $(CPPFLAGS_linker) -o $@ o2linker_defs.cpp

$(TARGETDIR_linker)/o2linker.o: $(TARGETDIR_linker) o2linker.cpp
	$(COMPILE.cc) $(CCFLAGS_linker) $(CPPFLAGS_linker) -o $@ o2linker.cpp

%.cpp: %.w
	cweave o2linker.w
	ctangle -l +e o2linker.w
	cweave /yacco2/compiler/stbl/yacco2_stbl.w
	ctangle -l +e /yacco2/compiler/stbl/yacco2_stbl.w
	cweave o2linker_externs.w
	ctangle -l +e o2linker_externs.w
	cweave /yacco2/externals/common_externs.w
	cweave types.w
	ctangle -l +e types.w
	ctangle -l +e /yacco2/externals/common_externs.w
	sh Makefile_Edit_cweb

#### Clean target deletes all generated files ####
clean:
	rm -f \
		$(TARGETDIR_linker)/o2linker \
		$(TARGETDIR_linker)/o2linker_externs.o \
		$(TARGETDIR_linker)/yacco2_stbl.o \
		o2linker.cpp \
		o2linker.h \
		o2linker_externs.cpp \
		o2linker_externs.h \
		common_externs.cpp \
		common_externs.h \
		o2linker_defs.cpp \
		yacco2_stbl.h
	$(CCADMIN)
	rm -f -r $(TARGETDIR_linker)


# Create the target directory (if needed)
$(TARGETDIR_linker):
	mkdir -p $(TARGETDIR_linker)

# Enable dependency checking
.KEEP_STATE:
.KEEP_STATE_FILE:.make.state.Sun-x86-Solaris