xref: /AOO41X/main/external/mingwheaders/makefile.mk (revision 54628ca40d27d15cc98fe861da7fff7e60c2f7d6)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24PRJ=..
25PRJNAME=external
26TARGET=mingwheaders
27
28.INCLUDE :  settings.mk
29
30.IF "$(OS)$(COM)" == "WNTGCC"
31
32# Cygwin and MinGW use different directories for the W32API headers
33.IF "$(USE_MINGW)" == "cygwin"
34MINGW_INCLUDE_DIR=$/usr$/include/mingw/
35MINGW_W32API_INCLUDE_DIR=$/usr$/include/w32api/
36MINGW_W32API_LIB_DIR=$/usr$/include/w32api/
37.ELSE
38MINGW_INCLUDE_DIR=$(COMPATH)$/include/
39MINGW_W32API_INCLUDE_DIR=$(COMPATH)$/include/
40MINGW_W32API_LIB_DIR=$(COMPATH)$/lib/
41.ENDIF
42
43SYS_INCLUDE_DIR=$(MINGW_INCLUDE_DIR)$/sys/
44
45PSDK_INCLUDE_DIR=$(PSDK_HOME)$/include$/
46
47ATL_INCLUDE_DIR=$(PSDK_HOME)$/include$/atl$/
48
49DIRECTXSDK_INCLUDE_DIR=$(DIRECTXSDK_HOME)$/include$/
50
51FILES_TO_COPY_FROM_MINGW= \
52    excpt.h \
53     tchar.h
54
55FILES_TO_COPY_FROM_W32API= \
56    amvideo.h \
57    basetyps.h \
58    objidl.h \
59    specstrings.h \
60    uxtheme.h \
61    winbase.h \
62    windef.h \
63    wininet.h \
64    winver.h \
65    wtypes.h
66
67FILES_TO_COPY_FROM_SYS= \
68    stat.h
69
70FILES_TO_COPY_FROM_PSDK= \
71    adoctint.h \
72    adodef.h \
73    adoguids.h \
74    adoint.h \
75    bcrypt.h \
76    commctrl.h \
77    control.h \
78    dispex.h \
79    filter.h \
80    gdiplusbitmap.h \
81    gdiplusbrush.h \
82    gdiplusenums.h \
83    gdiplusfont.h \
84    gdiplusheaders.h \
85    gdiplusimageattributes.h \
86    gdiplusimaging.h \
87    gdiplusmatrix.h \
88    gdipluspath.h \
89    gdipluspen.h \
90    gdiplusregion.h \
91    gdiplusstringformat.h \
92    imm.h \
93    imagehlp.h \
94    mapiwin.h \
95    msdasc.h \
96    msi.h \
97    msiquery.h \
98    multimon.h \
99    ntquery.h \
100    oaidl.h \
101    ocidl.h \
102    oleauto.h \
103    olectl.h \
104    oledb.h \
105    oleidl.h \
106    propidl.h \
107    propkeydef.h \
108    propsys.h \
109    propvarutil.h \
110    shlobj.h \
111    shobjidl.h \
112    shtypes.h \
113    sspi.h \
114    strmif.h \
115    strsafe.h \
116    structuredquery.h \
117    urlmon.h \
118    wincrypt.h \
119    winerror.h \
120    wingdi.h \
121    wintrust.h \
122    winuser.h \
123    wspiapi.h \
124    exdispid.h \
125    dshow.h \
126    gdiplus.h \
127    msxml.h \
128    ncrypt.h \
129    shlguid.h \
130    transact.h
131
132.IF "$(DISABLE_ATL)"==""
133MINGWHEADER_ATL_PATCH_TARGET=$(MISC)$/mingwheader_atl_patch
134MINGWHEADER_ATL_COPY_TARGET=$(MISC)$/mingwheader_atl_copy
135FILES_TO_COPY_FROM_ATL= \
136    atlbase.h \
137    atlcom.h \
138    atlconv.h \
139    atlctl.h \
140    atlwin.h \
141    statreg.h
142.ENDIF
143
144FILES_TO_COPY_FROM_DIRECTXSDK= \
145    d3dtypes.h \
146    d3dx9core.h \
147    d3dx9math.h \
148    d3dx9math.inl \
149    dxtrans.h \
150    d3dx9.h
151
152$(MISC)$/mingwheader_patch_all : $(MISC)$/mingwheader_patch $(MINGWHEADER_ATL_PATCH_TARGET) $(LB)$/libmsvcrt.a
153
154$(MISC)$/mingwheader_patch : $(MISC)$/mingwheader_copy
155    patch -bd $(MISC)$/mingw -p0 -N -f -Z <mingw_headers.patch
156    $(TOUCH) $(MISC)$/mingwheader_patch
157
158.IF "$(DISABLE_ATL)"==""
159$(MINGWHEADER_ATL_PATCH_TARGET) : $(MINGWHEADER_ATL_COPY_TARGET)
160    patch -bd $(MISC)$/mingw -p0 -N -f -Z <mingw_atl_headers.patch
161    $(TOUCH) $(MINGWHEADER_ATL_PATCH_TARGET)
162.ENDIF
163
164$(MISC)$/mingwheader_copy:
165    $(MKDIRHIER) $(MISC)$/mingw$/include
166    $(MKDIRHIER) $(MISC)$/mingw$/include/sys
167    $(COPY) $(FILES_TO_COPY_FROM_MINGW:^$(MINGW_INCLUDE_DIR)) $(MISC)$/mingw$/include
168    $(COPY) $(FILES_TO_COPY_FROM_W32API:^$(MINGW_W32API_INCLUDE_DIR)) $(MISC)$/mingw$/include
169    $(COPY) $(FILES_TO_COPY_FROM_SYS:^$(SYS_INCLUDE_DIR)) $(MISC)$/mingw$/include$/sys
170    $(COPY) $(FILES_TO_COPY_FROM_PSDK:^$(PSDK_INCLUDE_DIR)) $(MISC)$/mingw$/include
171    $(COPY) $(FILES_TO_COPY_FROM_DIRECTXSDK:^$(DIRECTXSDK_INCLUDE_DIR)) $(MISC)$/mingw$/include
172    $(TOUCH) $(MISC)$/mingwheader_copy
173
174.IF "$(DISABLE_ATL)"==""
175$(MINGWHEADER_ATL_COPY_TARGET):
176    $(MKDIRHIER) $(MISC)$/mingw$/include/atl
177    $(COPY) $(FILES_TO_COPY_FROM_ATL:^$(ATL_INCLUDE_DIR)) $(MISC)$/mingw$/include$/atl
178    $(TOUCH) $(MINGWHEADER_ATL_COPY_TARGET)
179.ENDIF
180
181$(LB)$/libmsvcrt.a:
182.IF "$(USE_MINGW)" == "cygwin"
183    $(COPY) $(COMPATH)$/lib/mingw/libmsvcrt.a $(LB)$/libmsvcrt_orig.a
184.ELSE
185    $(COPY) $(COMPATH)$/lib/libmsvcrt.a $(LB)$/libmsvcrt_orig.a
186.ENDIF
187    cd $(LB) && ar -x libmsvcrt_orig.a ofmt_stub.o
188    ar -d $(LB)$/libmsvcrt_orig.a ofmt_stub.o
189    nm -g --defined-only $(LB)$/libmsvcrt_orig.a > $(MISC)$/msvcrt.nm
190    echo EXPORTS > $(MISC)$/msvcrt.def
191    sed -ne 's/.* T _//p' $(MISC)$/msvcrt.nm | sort >> $(MISC)$/msvcrt.def
192    -sed -ne 's/.* I __imp__//p' $(MISC)$/msvcrt.nm | sort | diff - $(MISC)$/msvcrt.def | \
193        sed -ne 's/^< \(.*\)$/\1 DATA/p' > $(MISC)$/msvcrtdata.def
194    cat $(MISC)$/msvcrtdata.def >> $(MISC)$/msvcrt.def
195    dlltool --dllname msvcrt.dll --input-def=$(MISC)$/msvcrt.def --kill-at --output-lib=$(LB)$/libmsvcrt.a
196    cd $(LB) && ar -rs libmsvcrt.a ofmt_stub.o
197
198clean:
199    -$(RM) $(MISC)$/mingw$/include$/*.h
200    -$(RM) $(MISC)$/mingwheader_copy
201    -$(RM) $(MISC)$/mingwheader_patch
202
203.ENDIF
204
205.INCLUDE :  target.mk
206
207