Generate build/Makefile.win32.features

This commit is contained in:
Behdad Esfahbod 2008-09-22 21:18:09 -04:00
parent fd5cef50a7
commit ebb5eb57b7
6 changed files with 67 additions and 26 deletions

View file

@ -1,5 +1,14 @@
include $(top_srcdir)/build/Makefile.am.common
EXTRA_DIST += \
Makefile.win32 \
build/Makefile.win32.common \
build/Makefile.win32.features \
$(NULL)
MAINTAINERCLEANFILES += \
$(srcdir)/build/Makefile.win32.features \
$(NULL)
ACLOCAL_AMFLAGS = -I build
DIST_SUBDIRS = src doc util boilerplate test perf
@ -33,7 +42,6 @@ EXTRA_DIST += \
COPYING-MPL-1.1 \
HACKING \
INSTALL \
Makefile.win32 \
NEWS \
PORTING_GUIDE \
README \

View file

@ -3,6 +3,9 @@
include $(top_srcdir)/build/Makefile.am.common
include $(srcdir)/Makefile.am.features
EXTRA_DIST += Makefile.win32 Makefile.win32.features
MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
AM_CPPFLAGS = \
-I$(srcdir) \
-I$(top_builddir)/src \
@ -10,10 +13,6 @@ AM_CPPFLAGS = \
$(CAIRO_CFLAGS) \
$(NULL)
EXTRA_DIST += Makefile.win32
EXTRA_DIST += Makefile.win32.config
MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.config
EXTRA_LTLIBRARIES += libcairoboilerplate.la
libcairoboilerplate_la_SOURCES = \

View file

@ -1,3 +1,4 @@
include $(top_srcdir)/build/Makefile.win32.features
CC := cl
LINK := link
@ -8,8 +9,9 @@ else
OPT := -O2
endif
PIXMAN_CFLAGS := -I../../pixman/pixman
PIXMAN_LIBS := ../../pixman/pixman/$(CFG)/pixman-1.lib
PIXMAN_DIR = $(top_srcdir)/../pixman
PIXMAN_CFLAGS := -I$(PIXMAN_DIR)/pixman
PIXMAN_LIBS := $(PIXMAN_DIR)/pixman/$(CFG)/pixman-1.lib
EXE_LDFLAGS = libpng.lib zlib.lib gdi32.lib msimg32.lib user32.lib

View file

@ -19,7 +19,7 @@ m4_define([cr_feature_tag],
dnl ===========================================================================
dnl
dnl CAIRO_INIT_MAKEFILES()
dnl CAIRO_INIT_MAKEFILES([AUX-DIR])
dnl
dnl Sets up automake and win32 conditionals for all features
dnl
@ -34,8 +34,8 @@ AC_DEFUN([CAIRO_INIT_MAKEFILES],
AM_CONDITIONAL(cr_feature_tag, [test "x$use_]cr_feature[" = xyes])dnl
])dnl
dnl An empty line per feature for readability
CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,*,[])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([_],[$1],[],[[# Generated by configure. Modify to customize.]])dnl
CAIRO_MAKEFILE_ACCUMULATE_FEATURE([_],*,!always,*,[cr_feature_tag=m4_if(cr_feature_default,[yes],1,[m4_bmatch(cr_feature,[win32],1,0)])])dnl
])dnl
dnl ===========================================================================
@ -43,34 +43,38 @@ dnl ===========================================================================
m4_define([_CAIRO_MAKEFILES])dnl
dnl
dnl CAIRO_CONFIG_MAKEFILE(TAG, DIR)
dnl CAIRO_CONFIG_MAKEFILE(TAG, DIR, [SUFFIX], [HEADER])
dnl
dnl Create DIR/Makefile.*.features files
dnl Create DIR/Makefile.{am,win32}.SUFFIX files
dnl TAG is a TAG used by other CAIRO_MAKEFILE_* macros to append to these
dnl Makefile's.
dnl
dnl HEADER is appended at the top of the Makefile's. If HEADER is not
dnl set, the generic "Generated by configure. Do not edit." comment
dnl is added.
dnl
AC_DEFUN([CAIRO_CONFIG_MAKEFILE],
[dnl
m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE([$1], [$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE([$1], [$2], [$3], [$4])dnl
])dnl
dnl Like CAIRO_CONFIG_MAKEFILE but only generate win32 makefile
AC_DEFUN([CAIRO_CONFIG_MAKEFILE_WIN32],
[dnl
m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1], [$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1], [$2], [$3], [$4])dnl
])dnl
dnl Like CAIRO_CONFIG_MAKEFILE but only generate automake makefile
AC_DEFUN([CAIRO_CONFIG_MAKEFILE_AMAKE],
[dnl
m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1], [$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1], [$2], [$3], [$4])dnl
])dnl
dnl
dnl CAIRO_CONFIG_MAKEFILE_PRIVATE(TAG, DIR)
dnl CAIRO_CONFIG_MAKEFILE_PRIVATE(TAG, DIR, [SUFFIX], [HEADER])
dnl
dnl Like CAIRO_CONFIG_MAKEFILE but this makefile tag won't match
dnl against '*' in makefile accumulators.
@ -81,8 +85,8 @@ AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE],
[m4_fatal([Makefile `$1' already registered])])dnl
m4_define([cr_make_$1_dir],[$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1],[$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1],[$2])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1], [$2], [$3], [$4])dnl
CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1], [$2], [$3], [$4])dnl
])dnl
dnl Like CAIRO_CONFIG_MAKEFILE_PRIVATE but only generate automake makefile
@ -94,10 +98,10 @@ AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE],
m4_define([cr_make_$1_dir_any],[$2])dnl
dnl Accumulators
CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_AMAKE, m4_newline, [# Generated by configure. Do not edit.]m4_newline[include $(top_srcdir)/$2/Makefile.sources]m4_newline)dnl
CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_AMAKE, m4_newline, m4_default([$4],[[# Generated by configure. Do not edit.]])m4_newline)dnl
dnl Generate
CAIRO_CONFIG_COMMANDS([$srcdir/$2/Makefile.am.features],
CAIRO_CONFIG_COMMANDS([$srcdir/]m4_if([$2],[.],,[$2/])[Makefile.am.]m4_default([$3],[features]),
[echo "$CAIRO_MAKEFILE_$1_AMAKE"],
[CAIRO_MAKEFILE_$1_AMAKE='$CAIRO_MAKEFILE_$1_AMAKE'])dnl
])dnl
@ -111,10 +115,10 @@ AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32],
m4_define([cr_make_$1_dir_any],[$2])dnl
dnl Accumulators
CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_WIN32, m4_newline, [# Generated by configure. Do not edit.]m4_newline[ifeq ($(top_srcdir),)]m4_newline[include Makefile.sources]m4_newline[else]m4_newline[include $(top_srcdir)/$2/Makefile.sources]m4_newline[endif]m4_newline)dnl
CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_WIN32, m4_newline, m4_default([$4],[[# Generated by configure. Do not edit.]])m4_newline)dnl
dnl Generate
CAIRO_CONFIG_COMMANDS([$srcdir/$2/Makefile.win32.features],
CAIRO_CONFIG_COMMANDS([$srcdir/]m4_if([$2],[.],,[$2/])[Makefile.win32.]m4_default([$3],[features]),
[echo "$CAIRO_MAKEFILE_$1_WIN32"],
[CAIRO_MAKEFILE_$1_WIN32='$CAIRO_MAKEFILE_$1_WIN32'])dnl
])dnl
@ -125,6 +129,29 @@ m4_define([_CAIRO_MAKEFILE_CHECK],
m4_ifdef([cr_make_$1_dir_any],,[m4_fatal([Makefile `]$1[' not defined.])])dnl
])dnl
dnl
dnl CAIRO_MAKEFILE_INCLUDE(TAG, FILE)
dnl
dnl Include FILE from Makefile's for TAG. FILE should be placed
dnl relative to directory for TAG. If TAG is *, FILE is included from
dnl all Makefile's.
dnl
AC_DEFUN([CAIRO_MAKEFILE_INCLUDE],
[dnl
m4_if([$1],[*],,[_CAIRO_MAKEFILE_CHECK([$1])])dnl
m4_foreach_w([cr_makefile], m4_if([$1],[*],_CAIRO_MAKEFILES,[$1]),
[dnl
m4_ifdef([cr_make_]cr_makefile[_dir_amake],dnl
[CAIRO_ACCUMULATE([MAKEFILE_]cr_makefile[_AMAKE],[include $(top_srcdir)/cr_make_]cr_makefile[_dir_amake/$2]m4_newline)]
)dnl
m4_ifdef([cr_make_]cr_makefile[_dir_win32],dnl
[CAIRO_ACCUMULATE([MAKEFILE_]cr_makefile[_WIN32],[ifeq ($(top_srcdir),)]m4_newline[include $2]m4_newline[else]m4_newline[include $(top_srcdir)/cr_make_]cr_makefile[_dir_win32/$2]m4_newline[endif]m4_newline)]
)dnl
])dnl
])dnl
m4_pattern_allow([cr_make_tmp])
dnl

View file

@ -56,9 +56,12 @@ dnl
dnl Generate {src,boilerplate}/Makefile.{am,win32}.config
dnl
CAIRO_INIT_MAKEFILES()
CAIRO_INIT_MAKEFILES([build])
CAIRO_CONFIG_MAKEFILE([cairo], [src])dnl
CAIRO_CONFIG_MAKEFILE([cairo_boilerplate], [boilerplate])dnl
CAIRO_MAKEFILE_INCLUDE(*,[Makefile.sources])dnl
dnl An empty line per feature for readability
CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,*,[])dnl
dnl Collect list of all supported public headers

View file

@ -3,6 +3,9 @@
include $(top_srcdir)/build/Makefile.am.common
include $(srcdir)/Makefile.am.features
EXTRA_DIST += Makefile.win32 Makefile.win32.features
MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
AM_CPPFLAGS = -I$(srcdir) $(CAIRO_CFLAGS)
if OS_WIN32
@ -10,9 +13,8 @@ export_symbols = -export-symbols cairo.def
cairo_def_dependency = cairo.def
endif
EXTRA_DIST += Makefile.win32
EXTRA_DIST += cairo-supported-features.h cairo-features-win32.h Makefile.win32.config
MAINTAINERCLEANFILES += cairo-supported-features.h $(srcdir)/cairo-features-win32.h $(srcdir)/Makefile.win32.config
EXTRA_DIST += cairo-supported-features.h cairo-features-win32.h
MAINTAINERCLEANFILES += cairo-supported-features.h $(srcdir)/cairo-features-win32.h
$(top_builddir)/config.h: $(top_srcdir)/config.h.in
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h