xref: /AOO42X/main/external/mingwheaders/makefile.mk (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28PRJ=..
29PRJNAME=external
30TARGET=mingwheaders
31
32.INCLUDE :  settings.mk
33
34.IF "$(OS)$(COM)" == "WNTGCC"
35
36# Cygwin and MinGW use different directories for the W32API headers
37.IF "$(USE_MINGW)" == "cygwin"
38MINGW_INCLUDE_DIR=$/usr$/include/mingw/
39MINGW_W32API_INCLUDE_DIR=$/usr$/include/w32api/
40MINGW_W32API_LIB_DIR=$/usr$/include/w32api/
41.ELSE
42MINGW_INCLUDE_DIR=$(COMPATH)$/include/
43MINGW_W32API_INCLUDE_DIR=$(COMPATH)$/include/
44MINGW_W32API_LIB_DIR=$(COMPATH)$/lib/
45.ENDIF
46
47SYS_INCLUDE_DIR=$(MINGW_INCLUDE_DIR)$/sys/
48
49PSDK_INCLUDE_DIR=$(PSDK_HOME)$/include$/
50
51ATL_INCLUDE_DIR=$(PSDK_HOME)$/include$/atl$/
52
53DIRECTXSDK_INCLUDE_DIR=$(DIRECTXSDK_HOME)$/include$/
54
55FILES_TO_COPY_FROM_MINGW= \
56    excpt.h \
57     tchar.h
58
59FILES_TO_COPY_FROM_W32API= \
60    amvideo.h \
61    basetyps.h \
62    objidl.h \
63    specstrings.h \
64    uxtheme.h \
65    winbase.h \
66    windef.h \
67    wininet.h \
68    winver.h \
69    wtypes.h
70
71FILES_TO_COPY_FROM_SYS= \
72    stat.h
73
74FILES_TO_COPY_FROM_PSDK= \
75    adoctint.h \
76    adodef.h \
77    adoguids.h \
78    adoint.h \
79    bcrypt.h \
80    commctrl.h \
81    control.h \
82    dispex.h \
83    filter.h \
84    gdiplusbitmap.h \
85    gdiplusbrush.h \
86    gdiplusenums.h \
87    gdiplusfont.h \
88    gdiplusheaders.h \
89    gdiplusimageattributes.h \
90    gdiplusimaging.h \
91    gdiplusmatrix.h \
92    gdipluspath.h \
93    gdipluspen.h \
94    gdiplusregion.h \
95    gdiplusstringformat.h \
96    imm.h \
97    imagehlp.h \
98    mapiwin.h \
99    msdasc.h \
100    msi.h \
101    msiquery.h \
102    multimon.h \
103    ntquery.h \
104    oaidl.h \
105    ocidl.h \
106    oleauto.h \
107    olectl.h \
108    oledb.h \
109    oleidl.h \
110    propidl.h \
111    propkeydef.h \
112    propsys.h \
113    propvarutil.h \
114    shlobj.h \
115    shobjidl.h \
116    shtypes.h \
117    sspi.h \
118    strmif.h \
119    strsafe.h \
120    structuredquery.h \
121    urlmon.h \
122    wincrypt.h \
123    winerror.h \
124    wingdi.h \
125    wintrust.h \
126    winuser.h \
127    wspiapi.h \
128    exdispid.h \
129    dshow.h \
130    gdiplus.h \
131    msxml.h \
132    ncrypt.h \
133    shlguid.h \
134    transact.h
135
136.IF "$(DISABLE_ATL)"==""
137MINGWHEADER_ATL_PATCH_TARGET=$(MISC)$/mingwheader_atl_patch
138MINGWHEADER_ATL_COPY_TARGET=$(MISC)$/mingwheader_atl_copy
139FILES_TO_COPY_FROM_ATL= \
140    atlbase.h \
141    atlcom.h \
142    atlconv.h \
143    atlctl.h \
144    atlwin.h \
145    statreg.h
146.ENDIF
147
148FILES_TO_COPY_FROM_DIRECTXSDK= \
149    d3dtypes.h \
150    d3dx9core.h \
151    d3dx9math.h \
152    d3dx9math.inl \
153    dxtrans.h \
154    d3dx9.h
155
156$(MISC)$/mingwheader_patch_all : $(MISC)$/mingwheader_patch $(MINGWHEADER_ATL_PATCH_TARGET) $(LB)$/libmsvcrt.a
157
158$(MISC)$/mingwheader_patch : $(MISC)$/mingwheader_copy
159    patch -bd $(MISC)$/mingw -p0 -N -f -Z <mingw_headers.patch
160    $(TOUCH) $(MISC)$/mingwheader_patch
161
162.IF "$(DISABLE_ATL)"==""
163$(MINGWHEADER_ATL_PATCH_TARGET) : $(MINGWHEADER_ATL_COPY_TARGET)
164    patch -bd $(MISC)$/mingw -p0 -N -f -Z <mingw_atl_headers.patch
165    $(TOUCH) $(MINGWHEADER_ATL_PATCH_TARGET)
166.ENDIF
167
168$(MISC)$/mingwheader_copy:
169    $(MKDIRHIER) $(MISC)$/mingw$/include
170    $(MKDIRHIER) $(MISC)$/mingw$/include/sys
171    $(COPY) $(FILES_TO_COPY_FROM_MINGW:^$(MINGW_INCLUDE_DIR)) $(MISC)$/mingw$/include
172    $(COPY) $(FILES_TO_COPY_FROM_W32API:^$(MINGW_W32API_INCLUDE_DIR)) $(MISC)$/mingw$/include
173    $(COPY) $(FILES_TO_COPY_FROM_SYS:^$(SYS_INCLUDE_DIR)) $(MISC)$/mingw$/include$/sys
174    $(COPY) $(FILES_TO_COPY_FROM_PSDK:^$(PSDK_INCLUDE_DIR)) $(MISC)$/mingw$/include
175    $(COPY) $(FILES_TO_COPY_FROM_DIRECTXSDK:^$(DIRECTXSDK_INCLUDE_DIR)) $(MISC)$/mingw$/include
176    $(TOUCH) $(MISC)$/mingwheader_copy
177
178.IF "$(DISABLE_ATL)"==""
179$(MINGWHEADER_ATL_COPY_TARGET):
180    $(MKDIRHIER) $(MISC)$/mingw$/include/atl
181    $(COPY) $(FILES_TO_COPY_FROM_ATL:^$(ATL_INCLUDE_DIR)) $(MISC)$/mingw$/include$/atl
182    $(TOUCH) $(MINGWHEADER_ATL_COPY_TARGET)
183.ENDIF
184
185$(LB)$/libmsvcrt.a:
186.IF "$(USE_MINGW)" == "cygwin"
187    $(COPY) $(COMPATH)$/lib/mingw/libmsvcrt.a $(LB)$/libmsvcrt_orig.a
188.ELSE
189    $(COPY) $(COMPATH)$/lib/libmsvcrt.a $(LB)$/libmsvcrt_orig.a
190.ENDIF
191    cd $(LB) && ar -x libmsvcrt_orig.a ofmt_stub.o
192    ar -d $(LB)$/libmsvcrt_orig.a ofmt_stub.o
193    nm -g --defined-only $(LB)$/libmsvcrt_orig.a > $(MISC)$/msvcrt.nm
194    echo EXPORTS > $(MISC)$/msvcrt.def
195    sed -ne 's/.* T _//p' $(MISC)$/msvcrt.nm | sort >> $(MISC)$/msvcrt.def
196    -sed -ne 's/.* I __imp__//p' $(MISC)$/msvcrt.nm | sort | diff - $(MISC)$/msvcrt.def | \
197        sed -ne 's/^< \(.*\)$/\1 DATA/p' > $(MISC)$/msvcrtdata.def
198    cat $(MISC)$/msvcrtdata.def >> $(MISC)$/msvcrt.def
199    dlltool --dllname msvcrt.dll --input-def=$(MISC)$/msvcrt.def --kill-at --output-lib=$(LB)$/libmsvcrt.a
200    cd $(LB) && ar -rs libmsvcrt.a ofmt_stub.o
201
202clean:
203    -$(RM) $(MISC)$/mingw$/include$/*.h
204    -$(RM) $(MISC)$/mingwheader_copy
205    -$(RM) $(MISC)$/mingwheader_patch
206
207.ENDIF
208
209.INCLUDE :  target.mk
210
211