blob: 3dc9f626438cafa5e5a5c281942be2725762222c [file] [log] [blame]
Brian Paul304d11e2003-08-05 15:54:08 +00001# Mesa 3-D graphics library
2# Version: 4.0
3#
4# Copyright (C) 1999 Brian Paul All Rights Reserved.
5#
6# Permission is hereby granted, free of charge, to any person obtaining a
7# copy of this software and associated documentation files (the "Software"),
8# to deal in the Software without restriction, including without limitation
9# the rights to use, copy, modify, merge, publish, distribute, sublicense,
10# and/or sell copies of the Software, and to permit persons to whom the
11# Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be included
14# in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
Daniel Borca3f120582004-12-15 08:00:43 +000023# MinGW makefile v1.2 for Mesa
Brian Paul304d11e2003-08-05 15:54:08 +000024#
Daniel Borca3f120582004-12-15 08:00:43 +000025# Copyright (C) 2002 - Daniel Borca
Brian Paul304d11e2003-08-05 15:54:08 +000026# Email : dborca@users.sourceforge.net
27# Web : http://www.geocities.com/dborca
28
29
30#
31# Available options:
32#
33# Environment variables:
Brian Paul304d11e2003-08-05 15:54:08 +000034# GLIDE path to Glide3 SDK; used with FX.
35# default = $(TOP)/glide3
36# FX=1 build for 3dfx Glide3. Note that this disables
37# compilation of most WMesa code and requires fxMesa.
38# As a consequence, you'll need the Win32 Glide3
39# library to build any application.
40# default = no
Brian Paul86e001b2004-08-25 14:59:45 +000041# ICD=1 build the installable client driver interface
42# (windows opengl driver interface)
43# default = no
Daniel Borcaedf4f532004-04-14 08:00:52 +000044# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
Brian Paul304d11e2003-08-05 15:54:08 +000045# default = no
46#
47# Targets:
48# all: build everything
49# libgl: build GL
50# clean: remove object files
51# realclean: remove all generated files
52#
53
zhang37aca212007-06-28 08:12:52 -060054# MinGW core makefile updated for Mesa 7.0
55#
Zhang76fb8082007-07-21 11:28:06 -060056# Updated : by Heromyth, on 2007-7-21
zhang37aca212007-06-28 08:12:52 -060057# Email : zxpmyth@yahoo.com.cn
Zhang76fb8082007-07-21 11:28:06 -060058# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work.
zhang37aca212007-06-28 08:12:52 -060059# The others havn't been tested yet.
Zhang76fb8082007-07-21 11:28:06 -060060# 2) The generated DLLs are *not* compatible with the ones built
61# with the other compilers like VC8, especially for GLUT.
62# 3) MAlthough more tests are needed, it can be used individually!
Brian Paul304d11e2003-08-05 15:54:08 +000063
64
65.PHONY : all libgl clean realclean
66
Daniel Borcaeec588b2004-08-30 08:34:52 +000067ifeq ($(ICD),1)
68 # when -std=c99 mingw will not define WIN32
zhang37aca212007-06-28 08:12:52 -060069 CFLAGS = -Wall -Werror
Daniel Borcaeec588b2004-08-30 08:34:52 +000070else
71 # I love c89
zhang37aca212007-06-28 08:12:52 -060072 CFLAGS = -Wall -pedantic
Daniel Borcaeec588b2004-08-30 08:34:52 +000073endif
Daniel Borca731f1b12005-05-23 22:02:53 +000074CFLAGS += -O2 -ffast-math
Brian Paul304d11e2003-08-05 15:54:08 +000075
76export CFLAGS
77
Zhang76fb8082007-07-21 11:28:06 -060078
Brian Paul304d11e2003-08-05 15:54:08 +000079ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
80UNLINK = del $(subst /,\,$(1))
81else
82UNLINK = $(RM) $(1)
83endif
84
Zhang76fb8082007-07-21 11:28:06 -060085all: libgl libglu libglut example
Brian Paul304d11e2003-08-05 15:54:08 +000086
87libgl: lib
88 $(MAKE) -f Makefile.mgw -C src/mesa
89
zhang37aca212007-06-28 08:12:52 -060090libglu: libgl
91 $(MAKE) -f Makefile.mgw -C src/glu/sgi
92
93libglut: libglu
94 $(MAKE) -f Makefile.mgw -C src/glut/glx
95
96example: libglut
97 $(MAKE) -f Makefile.mgw star -C progs/samples
98 copy progs\samples\star.exe lib
99
Brian Paul304d11e2003-08-05 15:54:08 +0000100lib:
101 mkdir lib
102
103clean:
104 $(MAKE) -f Makefile.mgw clean -C src/mesa
zhang37aca212007-06-28 08:12:52 -0600105 $(MAKE) -f Makefile.mgw clean -C src/glu/sgi
106 $(MAKE) -f Makefile.mgw clean -C src/glut/glx
Brian Paul304d11e2003-08-05 15:54:08 +0000107
108realclean: clean
109 -$(call UNLINK,lib/*.a)
110 -$(call UNLINK,lib/*.dll)