mirror of
https://github.com/servo/servo.git
synced 2025-07-12 18:03:49 +01:00
158 lines
4.8 KiB
Makefile
158 lines
4.8 KiB
Makefile
########################################################################
|
|
# $Id$
|
|
# Copyright 2009 Aplix Corporation. All rights reserved.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
########################################################################
|
|
|
|
UNAME = $(shell uname)
|
|
INCDIRS = $(OBJDIR)
|
|
SRCDIR = src
|
|
DOCDIR = doc
|
|
EXAMPLESDIR = examples
|
|
OBJDIR = obj
|
|
|
|
########################################################################
|
|
# Linux configuration
|
|
#
|
|
ifneq (,$(filter Linux%, $(UNAME)))
|
|
|
|
CFLAGS = -g -Wall -Werror -O0 $(patsubst %, -I%, $(INCDIRS))
|
|
OBJSUFFIX = .o
|
|
EXESUFFIX =
|
|
#LIBS = -lefence
|
|
OBJOPTION = -o
|
|
EXEOPTION = -o
|
|
|
|
else
|
|
########################################################################
|
|
# Darwin configuration
|
|
#
|
|
ifneq (,$(filter Darwin%, $(UNAME)))
|
|
|
|
CFLAGS = -g -Wall -Werror -O2 $(patsubst %, -I%, $(INCDIRS))
|
|
OBJSUFFIX = .o
|
|
EXESUFFIX =
|
|
OBJOPTION = -o
|
|
# The -o in the following line has a space after it, which must not be removed.
|
|
EXEOPTION = -o
|
|
|
|
else
|
|
########################################################################
|
|
# Windows (cygwin but using MS compiler) configuration
|
|
#
|
|
# this is messy - should probably use vcvars.bat
|
|
ifneq (,$(filter CYGWIN%, $(UNAME)))
|
|
VISUALSTUDIODIR = $(wildcard /cygdrive/c/Program*Files/Microsoft*Visual*Studio*8)
|
|
SDKDIR = $(wildcard /cygdrive/c/Program*Files/Microsoft*SDKs/Windows/*/Lib)
|
|
ifeq (,$(VISUALSTUDIODIR))
|
|
VISUALSTUDIODIR = $(wildcard /cygdrive/c/Program\ Files\ */Microsoft*Visual*Studio*10*)
|
|
endif
|
|
ifeq (,$(VISUALSTUDIODIR))
|
|
VISUALSTUDIODIR = $(wildcard /cygdrive/c/Program\ Files\ */Microsoft*Visual*Studio*11*)
|
|
endif
|
|
# this is revelvant for vs2012 and windows 8 - sdk location has changed
|
|
ifeq (,$(SDKDIR))
|
|
SDKDIR = $(wildcard /cygdrive/c/Program\ Files\ */Windows*Kits)
|
|
endif
|
|
|
|
ifeq (,$(VISUALSTUDIODIR))
|
|
$(error Could not find MS Visual Studio)
|
|
else
|
|
WINVISUALSTUDIODIR = $(shell cygpath -w '$(VISUALSTUDIODIR)')
|
|
WINSDKDIR = $(shell cygpath -w '$(SDKDIR)')
|
|
|
|
#$(error $(VISUALSTUDIODIR))
|
|
|
|
CC = \
|
|
Lib='$(WINVISUALSTUDIODIR)\VC\LIB;$(WINVISUALSTUDIODIR)\VC\PlatformSDK\Lib;$(WINSDKDIR)' \
|
|
PATH='$(VISUALSTUDIODIR)/Common7/IDE:$(VISUALSTUDIODIR)/VC/BIN:$(VISUALSTUDIODIR)/Common7/Tools:$(VISUALSTUDIODIR)/SDK/v2.0/bin:$(VISUALSTUDIODIR)/8.0/Lib/win8/um/x86:'$$PATH \
|
|
Include='$(WINVISUALSTUDIODIR)\VC\INCLUDE;$(WINVISUALSTUDIODIR)\VC\PlatformSDK\Include' \
|
|
cl
|
|
endif
|
|
|
|
CFLAGS = /nologo /WX /W3 /wd4996 /Zi /O2 $(patsubst %, /I%, $(INCDIRS))
|
|
OBJSUFFIX = .obj
|
|
EXESUFFIX = .exe
|
|
OBJOPTION = /Fo
|
|
EXEOPTION = /Fe
|
|
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
########################################################################
|
|
# Common makefile
|
|
#
|
|
WIDLPROC = $(OBJDIR)/widlproc$(EXESUFFIX)
|
|
DTD = $(OBJDIR)/widlprocxml.dtd
|
|
|
|
ALL = $(WIDLPROC) $(DTD)
|
|
all : $(ALL)
|
|
|
|
SRCS = \
|
|
comment.c \
|
|
lex.c \
|
|
main.c \
|
|
misc.c \
|
|
node.c \
|
|
parse.c \
|
|
process.c
|
|
|
|
OBJS = $(patsubst %.c, $(OBJDIR)/%$(OBJSUFFIX), $(SRCS))
|
|
$(WIDLPROC) : $(OBJS)
|
|
$(CC) $(CFLAGS) $(EXEOPTION)$@ $^ $(LIBS)
|
|
|
|
$(OBJDIR)/%$(OBJSUFFIX) : $(SRCDIR)/%.c
|
|
mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) $(OBJOPTION)$@ -c $<
|
|
|
|
$(OBJDIR)/%.d : $(SRCDIR)/%.c
|
|
mkdir -p $(dir $@)
|
|
cc $(patsubst %, -I%, $(INCDIRS)) -MM -MG -MT $(patsubst %.d, %$(OBJSUFFIX), $@) $< | sed '$(patsubst %, s| \(%\)| $(OBJDIR)/\1|;, $(AUTOGENHEADERS))' >$@
|
|
|
|
include $(patsubst %.c, $(OBJDIR)/%.d, $(SRCS))
|
|
|
|
|
|
$(DTD) : $(DOCDIR)/htmltodtd.xsl $(DOCDIR)/widlproc.html
|
|
xsltproc -html $^ >$@
|
|
|
|
clean :
|
|
rm -f $(ALL) $(OBJS)
|
|
|
|
veryclean :
|
|
rm -rf $(OBJDIR)
|
|
|
|
SVNFILES = $(shell test -d .svn && svn info -R . | sed -n 's/^Path: \(.*\)$$/\1/p')
|
|
SVNBRANCH = $(shell test -d .svn && svn info . | sed -n 's|^URL:.*/\([^/]*\)$$|\1|p')
|
|
SVNREV = $(shell test -d .svn && svn info -R . | sed -n 's/^Last Changed Rev: \([0-9][0-9]*\)$$/\1/p' | sort -g | tail -1)
|
|
|
|
SVNLOG = history
|
|
$(SVNLOG) : $(SVNFILES)
|
|
svn log -vrHEAD:311 >$@
|
|
|
|
zip : $(OBJDIR)/widlproc-$(SVNBRANCH)$(SVNREV).zip
|
|
$(OBJDIR)/widlproc-$(SVNBRANCH)$(SVNREV).zip : $(WIDLPROC) $(DTD) $(DOCDIR)/widlproc.html $(SRCDIR)/widlprocxmltohtml.xsl Makefile $(SVNLOG)
|
|
rm -f $@
|
|
zip -j $@ $^ -x Makefile
|
|
zip $@ examples/*.widl examples/*.css examples/Makefile examples/README examples/*.xsl examples/*.html
|
|
|
|
srczip : widlproc-src-$(SVNBRANCH)$(SVNREV).zip
|
|
|
|
widlproc-src-%.zip : $(SVNFILES) $(SVNLOG)
|
|
zip $@ $^
|
|
|
|
examples :
|
|
$(MAKE) -C examples SRCDIR=../src OBJDIR=../obj EXAMPLESOBJDIR=../obj/examples
|
|
|
|
test : $(OBJS)
|
|
$(MAKE) -C test SRCDIR=../src OBJDIR=../obj
|
|
|
|
.DELETE_ON_ERROR:
|