summaryrefslogtreecommitdiff
path: root/docs/makefiles/gcc_dependecies_in_subdirs.txt
blob: 1f1b2604b4a8058eed0e9d8e7ec0c1062ab7fc96 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279

   #[1]Stack Overflow [2]RSS

   [3]logo homepage 
   [4]login | [5]about | [6]faq
   ____________________________
     * [7]Questions
     * [8]Tags
     * [9]Users
     * [10]Badges
     * [11]Unanswered

     * [12]Ask Question

[13]gcc dependency generation for a different output directory

   vote up 1 vote down
   star
   
   I'm using gcc to generate a dependency file but my build rules put the
   output into a subdirectory. Is there a way to tell gcc to put my
   subdirectory prefix in the dependency file it generates for me?
gcc $(INCLUDES) -E -MM $(CFLAGS) $(SRC) >>$(DEP)

   [14]c++ [15]gcc [16]makefile [17]dependency
   offensive?
   asked Sep 18 at 21:46
   [18][2db54153755add15ae67c16bfba9b7e5?s=32&d=identicon&r=PG] 
   [19]KPexEA
   2,312●2●19
   add comment JavaScript is needed to access comments.

4 Answers:

   [20]Oldest[21]Newest[22]Votes
   vote up 1 vote down
   check

   The answer is in the [23]GCC manual: use the -MT flag.

     -MT target Change the target of the rule emitted by dependency generation.
     By default CPP takes the name of the main input file, deletes any
     directory components and any file suffix such as `.c', and appends the
     platform's usual object suffix. The result is the target.

     An -MT option will set the target to be exactly the string you specify. If
     you want multiple targets, you can specify them as a single argument to
     -MT, or use multiple -MT options.

     For example, -MT '$(objpfx)foo.o' might give
         $(objpfx)foo.o: foo.c

   [24]link|offensive?
   answered Sep 19 at 3:27
   [25][139450632a8b42b6f4564d6448e33688?s=32&d=identicon&r=PG] 
   [26]bk1e
   2,104●1●10
   add comment JavaScript is needed to access comments.
   vote up 0 vote down

   If there is an argument to gcc to do this, I don't know what it is. We end
   up piping the dependency output through sed to rewrite all occurrences of .o
   as ${OBJDIR}/.o
   [27]link|offensive?
   answered Sep 18 at 21:52
   [28][a5274c69de87610590b2f62c2fa3ad0d?s=32&d=identicon&r=PG] 
   [29]Denton Gentry
   4,976●5●17
   add comment JavaScript is needed to access comments.
   vote up 0 vote down

   Ok, just to make sure I've got the question right: I'm assuming you have
   test.c which includes test.h, and you want to generate subdir/test.d (while
   not generating subdir/test.o) where subdir/test.d contains
subdir/test.o: test.c test.h

   rather than
test.o: test.c test.h

   which is what you get right now. Is that right?

   I was not able to come up with an easy way to do exactly what you're asking
   for. However, looking at
   [30]http://www.gnu.org/software/gcc/news/dependencies.html, if you want to
   create the .d file while you generate the .o file, you can use

     gcc $(INCLUDES) -MMD $(CFLAGS) $(SRC) -o $(SUBDIR)/$(OBJ)

   (Given SRC=test.c, SUBDIR=subdir, and OBJ=test.o) This will create both
   subdir/test.o and subdir/test.d, where subdir/test.d contains the desired
   output as above. Hope that helps.
   [31]link|offensive?
   answered Sep 18 at 22:38
   [c749fe5f20f7e2045cf312767496d0b4?s=32&d=identicon&r=PG]
   Emile
   add comment JavaScript is needed to access comments.
   vote up 0 vote down
    1. [GNU] make gets angry if you don't place the output in the current
       directory. What you really should do is run make from the build
       directory, and use the VPATH make variable to locate the source code. If
       you lie to a compiler, sooner or later it will take its revenge.
    2. If you insist on generating your objects and dependencies in some other
       directory, you need to use the -o argument as answered by Emile.

   [32]link|offensive?
   answered Sep 18 at 23:10
   [33][aea3ad606f964cb4b710951d75318d6a?s=32&d=identicon&r=PG] 
   [34]florin
   1,212●1●13
   add comment JavaScript is needed to access comments.

Your Answer:


   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   ______________________________________________________________________
   community wiki
   [_]
   ____________________
   OpenID Login: ________________________________________
   Get an [35]OpenID
   or
   Name: ______________________________ Email: (never shown)
   ________________________________________ Home Page:
   ________________________________________
   Post Your Answer

Not the answer you're looking for? Browse other questions tagged [36]c++
[37]gcc [38]makefile [39]dependency or [40]ask your own question.

Hello World!

   Stack Overflow is a collaboratively edited question and answer site for
   programmers  —  regardless of platform or language. It's 100% free, no
   registration required.

   [41]about »
   [42]faq »

   tagged
   [43]c++ × 4809
   [44]gcc × 223
   [45]makefile × 76
   [46]dependency × 27

   asked

   5 months ago

   viewed

   356 times

   latest activity

   5 months ago
   [47]MIX 09: The Next Web Now, March 18-20, The Venetian Las Vegas 

Related

   [48]Different  dependency  settings  for  ‘Debug’  and ‘Release’ build
   configuration in VisualC++ 6.0
   [49]How to exclude all transitive dependencies of a Maven dependency
   [50]GCC compiling a dll with __stdcall
   [51]Need a makefile dependency rule that can handle missing files
   [52]Error: The Side-by-Side configuration information in “BLAH.EXE” contains
   errors.
   [53]Is there a tool to automatically fetch build dependencies under Debian
   or Ubuntu?
   [54]Is  it possible to simulate installation of Debian packages, still
   marking them installed?
   [55]circular dependencies between dlls with visual studio
   [56]Using mock objects outside of testing, bad practice?
   [57]Maven : OSGI, bundles and multi-modules projects
   [58]Sharepoint Web Part Management
   [59]Good tool to generate dependency diagram?
   [60]How should I detect unnecessary #include files in a large C++ project?
   [61]How can you re-arrange items in an array based on its dependencies? and
   also detect any cyclic dependency
   [62]Resolve dependencies on data model without cascading delete
   [63]ASP.NET web hosting - Special Offer! 
   [64]feed icon 
   [65]question feed

   [66]about this site | [67]faq | [68]blog | [69]podcast | [70]privacy policy
   | [71]contact us | [72]feedback always welcome
   [73]cc-wiki, PEAK Internet
   svn revision: 2544

   Stack Overflow works best with JavaScript enabled

References

   1. file://localhost/opensearch.xml
   2. file://localhost/feeds/question/97338
   3. file://localhost/
   4. file://localhost/users/login?returnurl=%2fquestions%2f97338%2fgcc-dependency-generation-for-a-different-output-directory%2f99282
   5. file://localhost/about
   6. file://localhost/faq
   7. file://localhost/questions
   8. file://localhost/tags
   9. file://localhost/users
  10. file://localhost/badges
  11. file://localhost/unanswered
  12. file://localhost/questions/ask
  13. file://localhost/questions/97338/gcc-dependency-generation-for-a-different-output-directory
  14. file://localhost/questions/tagged/c%2b%2b
  15. file://localhost/questions/tagged/gcc
  16. file://localhost/questions/tagged/makefile
  17. file://localhost/questions/tagged/dependency
  18. file://localhost/users/13676/kpexea
  19. file://localhost/users/13676/kpexea
  20. file://localhost/questions/97338?sort=oldest#sort-top
  21. file://localhost/questions/97338?sort=newest#sort-top
  22. file://localhost/questions/97338?sort=votes#sort-top
  23. http://gcc.gnu.org/onlinedocs/gcc-4.3.2/cpp/Invocation.html
  24. file://localhost/questions/97338/gcc-dependency-generation-for-a-different-output-directory/99282#99282
  25. file://localhost/users/8090/bk1e
  26. file://localhost/users/8090/bk1e
  27. file://localhost/questions/97338/gcc-dependency-generation-for-a-different-output-directory/97374#97374
  28. file://localhost/users/4761/denton-gentry
  29. file://localhost/users/4761/denton-gentry
  30. http://www.gnu.org/software/gcc/news/dependencies.html
  31. file://localhost/questions/97338/gcc-dependency-generation-for-a-different-output-directory/97710#97710
  32. file://localhost/questions/97338/gcc-dependency-generation-for-a-different-output-directory/97893#97893
  33. file://localhost/users/18308/florin
  34. file://localhost/users/18308/florin
  35. http://openid.net/get/
  36. file://localhost/questions/tagged/c%2b%2b
  37. file://localhost/questions/tagged/gcc
  38. file://localhost/questions/tagged/makefile
  39. file://localhost/questions/tagged/dependency
  40. file://localhost/questions/ask
  41. file://localhost/about
  42. file://localhost/faq
  43. file://localhost/questions/tagged/c%2b%2b
  44. file://localhost/questions/tagged/gcc
  45. file://localhost/questions/tagged/makefile
  46. file://localhost/questions/tagged/dependency
  47. http://2009.visitmix.com/MIXtify/TenKGallery.aspx?stackoverflow
  48. file://localhost/questions/142996/different-dependency-settings-for-debug-and-release-build-configuration-in-vi
  49. file://localhost/questions/547805/how-to-exclude-all-transitive-dependencies-of-a-maven-dependency
  50. file://localhost/questions/107549/gcc-compiling-a-dll-with-stdcall
  51. file://localhost/questions/239004/need-a-makefile-dependency-rule-that-can-handle-missing-files
  52. file://localhost/questions/254076/error-the-side-by-side-configuration-information-in-blah-exe-contains-errors
  53. file://localhost/questions/210122/is-there-a-tool-to-automatically-fetch-build-dependencies-under-debian-or-ubuntu
  54. file://localhost/questions/140340/is-it-possible-to-simulate-installation-of-debian-packages-still-marking-them-in
  55. file://localhost/questions/362830/circular-dependencies-between-dlls-with-visual-studio
  56. file://localhost/questions/367308/using-mock-objects-outside-of-testing-bad-practice
  57. file://localhost/questions/375172/maven-osgi-bundles-and-multi-modules-projects
  58. file://localhost/questions/377457/sharepoint-web-part-management
  59. file://localhost/questions/100372/good-tool-to-generate-dependency-diagram
  60. file://localhost/questions/74326/how-should-i-detect-unnecessary-include-files-in-a-large-c-project
  61. file://localhost/questions/546586/how-can-you-re-arrange-items-in-an-array-based-on-its-dependencies-and-also-dete
  62. file://localhost/questions/536425/resolve-dependencies-on-data-model-without-cascading-delete
  63. http://www.discountasp.net/go/go.aspx?i=5955
  64. file://localhost/feeds/question/97338
  65. file://localhost/feeds/question/97338
  66. file://localhost/about
  67. file://localhost/faq
  68. http://blog.stackoverflow.com/
  69. http://itc.conversationsnetwork.org/series/stackoverflow.html
  70. file://localhost/privacy
  71. mailto:team@stackoverflow.com
  72. http://stackoverflow.uservoice.com/
  73. LYNXIMGMAP:file://localhost/home/abaumann/projects/WolfBones/docs/makefiles/99282.html#footermap