]>
Commit | Line | Data |
---|---|---|
b88c0704 | 1 | # Top level -*- makefile -*- fragment for GNU Objective-C |
27bf414c | 2 | # Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005 |
43c6a96a | 3 | # Free Software Foundation, Inc. |
d5d0a377 | 4 | |
b9593599 | 5 | #This file is part of GCC. |
d5d0a377 | 6 | |
b9593599 | 7 | #GCC is free software; you can redistribute it and/or modify |
d5d0a377 RK |
8 | #it under the terms of the GNU General Public License as published by |
9 | #the Free Software Foundation; either version 2, or (at your option) | |
10 | #any later version. | |
11 | ||
b9593599 | 12 | #GCC is distributed in the hope that it will be useful, |
d5d0a377 RK |
13 | #but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | #GNU General Public License for more details. | |
16 | ||
17 | #You should have received a copy of the GNU General Public License | |
b9593599 | 18 | #along with GCC; see the file COPYING. If not, write to |
d5d0a377 RK |
19 | #the Free Software Foundation, 59 Temple Place - Suite 330, |
20 | #Boston, MA 02111-1307, USA. | |
21 | ||
22 | # This file provides the language dependent support in the main Makefile. | |
23 | # Each language makefile fragment must provide the following targets: | |
24 | # | |
25 | # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, | |
97ae108d | 26 | # foo.install-normal, foo.install-common, foo.install-man, |
436a88a6 | 27 | # foo.uninstall, |
a03ad584 | 28 | # foo.mostlyclean, foo.clean, foo.distclean, |
d5d0a377 RK |
29 | # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 |
30 | # | |
31 | # where `foo' is the name of the language. | |
32 | # | |
33 | # It should also provide rules for: | |
34 | # | |
35 | # - making any compiler driver (eg: g++) | |
36 | # - the compiler proper (eg: cc1plus) | |
37 | # - define the names for selecting the language in LANGUAGES. | |
d5d0a377 | 38 | |
416c259a | 39 | #\f |
d5d0a377 | 40 | # Define the names for selecting Objective-C in LANGUAGES. |
fbe39e48 BE |
41 | OBJC objc: cc1obj$(exeext) |
42 | OBJECTIVE-C objective-c: cc1obj$(exeext) | |
d5d0a377 RK |
43 | |
44 | # Tell GNU make to ignore these if they exist. | |
45 | .PHONY: objective-c objc ObjC | |
46 | ||
b8dad04b ZW |
47 | # Use maximal warnings for this front end. |
48 | objc-warn = $(STRICT_WARN) | |
49 | ||
d5d0a377 | 50 | # Language-specific object files for Objective C. |
27bf414c | 51 | OBJC_OBJS = objc/objc-lang.o objc/objc-act.o |
d5d0a377 | 52 | |
3fd30b88 | 53 | cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS) |
4977bab6 | 54 | $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ |
3fd30b88 GK |
55 | $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \ |
56 | $(BACKEND) $(LIBS) | |
57 | ||
58 | cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(exeext) | |
59 | build/genchecksum$(exeext) cc1obj-dummy$(exeext) > $@ | |
60 | ||
61 | cc1obj-checksum.o : cc1obj-checksum.c | |
62 | ||
63 | cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS) | |
64 | $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ | |
65 | $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \ | |
66 | $(BACKEND) $(LIBS) | |
d5d0a377 RK |
67 | |
68 | # Objective C language specific files. | |
69 | ||
4977bab6 | 70 | objc/objc-lang.o : objc/objc-lang.c \ |
9a4d6480 ZL |
71 | $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ |
72 | $(C_TREE_H) $(C_PRETTY_PRINT_H) $(DIAGNOSTIC_H) \ | |
73 | $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h \ | |
43f479d6 | 74 | c-objc-common.h objc/objc-act.h tree-gimple.h |
4977bab6 | 75 | |
4977bab6 | 76 | objc/objc-act.o : objc/objc-act.c \ |
3c437d12 LR |
77 | $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \ |
78 | $(EXPR_H) $(TARGET_H) $(C_TREE_H) diagnostic.h toplev.h flags.h \ | |
79 | objc/objc-act.h input.h function.h output.h debug.h langhooks.h \ | |
43f479d6 | 80 | $(LANGHOOKS_DEF_H) $(HASHTAB_H) c-pragma.h gt-objc-objc-act.h tree-gimple.h |
d5d0a377 | 81 | |
27bf414c | 82 | objc.srcextra: |
d5d0a377 | 83 | |
e2500fed | 84 | gtype-objc.h : s-gtype ; @true |
8643e92d | 85 | gt-objc-objc-act.h : s-gtype ; @true |
e2500fed | 86 | |
416c259a | 87 | #\f |
d5d0a377 RK |
88 | # Build hooks: |
89 | ||
90 | objc.all.build: | |
91 | objc.all.cross: | |
92 | objc.start.encap: | |
93 | objc.rest.encap: | |
a541f69d KC |
94 | objc.info: |
95 | objc.man: | |
96 | objc.srcinfo: | |
97 | objc.srcman: | |
d5d0a377 | 98 | |
65ebbf81 | 99 | objc.tags: force |
27bf414c | 100 | cd $(srcdir)/objc; etags -o TAGS.sub *.c *.h; \ |
7d60db05 | 101 | etags --include TAGS.sub --include ../TAGS.sub |
65ebbf81 | 102 | |
49a41726 JM |
103 | lang_checks += check-objc |
104 | ||
416c259a | 105 | #\f |
d5d0a377 RK |
106 | # Install hooks: |
107 | # cc1obj is installed elsewhere as part of $(COMPILERS). | |
108 | ||
fbe39e48 | 109 | objc.install-normal: |
d5d0a377 RK |
110 | |
111 | objc.install-common: | |
112 | ||
d5d0a377 RK |
113 | objc.install-man: |
114 | ||
115 | objc.uninstall: | |
416c259a | 116 | #\f |
d5d0a377 RK |
117 | # Clean hooks: |
118 | # A lot of the ancillary files are deleted by the main makefile. | |
119 | # We just have to delete files specific to us. | |
120 | objc.mostlyclean: | |
d5d0a377 | 121 | -rm -f objc/*$(objext) objc/xforward objc/fflags |
22aa533e | 122 | -rm -f objc/*$(coverageexts) |
d5d0a377 RK |
123 | objc.clean: objc.mostlyclean |
124 | -rm -rf objc-headers | |
125 | objc.distclean: | |
126 | -rm -f objc/Makefile objc/Make-host objc/Make-target | |
127 | -rm -f objc/config.status objc/config.cache | |
d5d0a377 | 128 | objc.maintainer-clean: |
d5d0a377 | 129 | |
416c259a | 130 | #\f |
d5d0a377 RK |
131 | # Stage hooks: |
132 | ||
963f4057 | 133 | objc.stage1: stage1-start |
d5d0a377 | 134 | -mv objc/*$(objext) stage1/objc |
963f4057 | 135 | objc.stage2: stage2-start |
d5d0a377 | 136 | -mv objc/*$(objext) stage2/objc |
963f4057 | 137 | objc.stage3: stage3-start |
d5d0a377 | 138 | -mv objc/*$(objext) stage3/objc |
963f4057 | 139 | objc.stage4: stage4-start |
d5d0a377 | 140 | -mv objc/*$(objext) stage4/objc |
8f231b5d JH |
141 | objc.stageprofile: stageprofile-start |
142 | -mv objc/*$(objext) stageprofile/objc | |
8f231b5d JH |
143 | objc.stagefeedback: stagefeedback-start |
144 | -mv objc/*$(objext) stagefeedback/objc |