Skip to content
Commits on Source (6)
0.5.0 (18-08-2019)
=====
* New implementation of `YUV420`, added many function to manipulate those.
* Enhanced `Video` module.
0.4.1 (27-06-2019)
=====
* Fix memory leak in `RGBA32.of_RGB24_string`.
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for ocaml-mm 0.4.1.
# Generated by GNU Autoconf 2.69 for ocaml-mm 0.5.0.
#
# Report bugs to <savonet-users@lists.sourceforge.net>.
#
......@@ -640,8 +640,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ocaml-mm'
PACKAGE_TARNAME='ocaml-mm'
PACKAGE_VERSION='0.4.1'
PACKAGE_STRING='ocaml-mm 0.4.1'
PACKAGE_VERSION='0.5.0'
PACKAGE_STRING='ocaml-mm 0.5.0'
PACKAGE_BUGREPORT='savonet-users@lists.sourceforge.net'
PACKAGE_URL=''
......@@ -1389,7 +1389,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures ocaml-mm 0.4.1 to adapt to many kinds of systems.
\`configure' configures ocaml-mm 0.5.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1455,7 +1455,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of ocaml-mm 0.4.1:";;
short | recursive ) echo "Configuration of ocaml-mm 0.5.0:";;
esac
cat <<\_ACEOF
......@@ -1581,7 +1581,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
ocaml-mm configure 0.4.1
ocaml-mm configure 0.5.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1950,7 +1950,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by ocaml-mm $as_me 0.4.1, which was
It was created by ocaml-mm $as_me 0.5.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -7552,7 +7552,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by ocaml-mm $as_me 0.4.1, which was
This file was extended by ocaml-mm $as_me 0.5.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7614,7 +7614,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
ocaml-mm config.status 0.4.1
ocaml-mm config.status 0.5.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
AC_INIT([ocaml-mm],[0.4.1],[savonet-users@lists.sourceforge.net])
AC_INIT([ocaml-mm],[0.5.0],[savonet-users@lists.sourceforge.net])
VERSION=$PACKAGE_VERSION
AC_MSG_RESULT(configuring $PACKAGE_STRING)
......
ocaml-mm (0.5.0-1) unstable; urgency=medium
* New upstream version 0.5.0
* Bump compat to 11
* Bump Standards-Version to 4.4.1 (move to dh)
-- Kyle Robbertze <paddatrapper@debian.org> Fri, 08 Nov 2019 20:34:00 +0200
ocaml-mm (0.4.1-2) unstable; urgency=medium
* Rebuild for source-only upload
......
......@@ -2,25 +2,32 @@ Source: ocaml-mm
Section: ocaml
Priority: optional
Maintainer: Debian OCaml Maintainers <debian-ocaml-maint@lists.debian.org>
Uploaders:
Kyle Robbertze <paddatrapper@debian.org>,
Uploaders: Kyle Robbertze <paddatrapper@debian.org>,
Samuel Mimram <smimram@debian.org>,
Romain Beauxis <toots@rastageeks.org>
Build-Depends: cdbs (>= 0.4.85~),
debhelper (>= 10),
Build-Depends: debhelper (>= 11),
debhelper-compat (= 11),
dh-buildinfo,
ocaml-nox,
dh-ocaml (>= 0.9),
ocamlbuild,
ocaml-findlib (>= 1.2.4)
Standards-Version: 4.3.0
libalsa-ocaml-dev,
libao-ocaml-dev,
libgstreamer-ocaml-dev,
libmad-ocaml-dev,
libogg-ocaml-dev,
libpulse-ocaml-dev,
libsdl-ocaml-dev,
libtheora-ocaml-dev,
ocaml-findlib (>= 1.2.4),
ocaml-nox (>= 4.08),
ocamlbuild
Standards-Version: 4.4.1
Homepage: https://github.com/savonet/ocaml-mm
Vcs-Git: https://salsa.debian.org/ocaml-team/ocaml-mm.git
Vcs-Browser: https://salsa.debian.org/ocaml-team/ocaml-mm
Package: libmm-ocaml
Architecture: any
Depends: ${ocaml:Depends}, ${shlibs:Depends}, ${misc:Depends}
Depends: ${misc:Depends}, ${ocaml:Depends}, ${shlibs:Depends}
Provides: ${ocaml:Provides}
Description: OCaml multimedia library -- runtime files
OCaml-mm is a toolkit for audio and video processing
......@@ -31,8 +38,18 @@ Description: OCaml multimedia library -- runtime files
Package: libmm-ocaml-dev
Architecture: any
Depends: ${ocaml:Depends},
libmm-ocaml (= ${binary:Version}), ocaml-findlib, ${misc:Depends}
Depends: libalsa-ocaml-dev,
libao-ocaml-dev,
libgstreamer-ocaml-dev,
libmad-ocaml-dev,
libmm-ocaml (= ${binary:Version}),
libogg-ocaml-dev,
libpulse-ocaml-dev,
libsdl-ocaml-dev,
libtheora-ocaml-dev,
ocaml-findlib,
${misc:Depends},
${ocaml:Depends}
Provides: ${ocaml:Provides}
Description: OCaml multimedia library -- development files
OCaml-mm is a toolkit for audio and video processing
......
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/ocaml.mk
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
include /usr/share/ocaml/ocamlvars.mk
DEB_CONFIGURE_EXTRA_FLAGS := --enable-debugging
DEB_CONFIGURE_SCRIPT := ./configure
DESTDIR = $(CURDIR)/debian/tmp/$(OCAML_STDLIB_DIR)
DEB_MAKE_INSTALL_TARGET := install OCAMLFIND_DESTDIR=$(DESTDIR) OCAMLFIND_LDCONF=ignore
DESTDIR := $(CURDIR)/debian/tmp
export OCAMLFIND_DESTDIR=$(DESTDIR)$(OCAML_STDLIB_DIR)
export PKG_CONFIG_PATH=/usr/lib/$(DEB_BUILD_ARCH)/pkgconfig
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
build/libmm-ocaml-dev::
mkdir -p $(DESTDIR)
make doc
%:
dh $@ --with ocaml
clean::
override_dh_autoreconf:
./bootstrap
override_dh_auto_build:
[ -f debian/autoreconf.before ] || dh_autoreconf ./bootstrap
$(MAKE) all doc
override_dh_auto_install:
mkdir -p $(DESTDIR)/$(OCAML_STDLIB_DIR)
$(MAKE) install DESTDIR=$(DESTDIR) \
prefix=$(DESTDIR)/usr sysconfdir=$(DESTDIR)/etc \
OCAMLFIND_LDCONF=ignore
dh_install
override_dh_auto_test:
true
override_dh_auto_clean:
dh_autoreconf_clean
rm -rf .pc config.h Makefile src/Makefile src/META doc config.log config.status
dh_clean
EXAMPLES = $(shell find . -maxdepth 1 -type d | sed "s/^\.\///" | grep -v "\.")
all clean doc:
for d in $(EXAMPLES); do $(MAKE) -C $$d $@; done
all test clean doc:
for d in $(EXAMPLES); do $(MAKE) -C $$d $@ || exit 1; done
.PHONY: all
......@@ -115,12 +115,13 @@ endif
SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
# This may be
# - mingw
# - mingw64
# - win32
# - cygwin
# - some other string means Unix
# - empty means ocamlc does not support -config
ifeq ($(SYSTEM),mingw)
ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
MINGW=1
endif
ifeq ($(SYSTEM),win32)
......@@ -130,11 +131,18 @@ endif
ifdef MINGW
export MINGW
WIN32 := 1
# We are compiling with cygwin tools:
CFLAGS_WIN32 := -mno-cygwin
# The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
# NTVDM CPU has encountered an illegal instruction'.
ifndef CC
MNO_CYGWIN := $(shell gcc -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
CC := gcc
else
MNO_CYGWIN := $(shell $$CC -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
endif
# We are compiling with cygwin tools:
ifeq ($(MNO_CYGWIN),0)
CFLAGS_WIN32 := -mno-cygwin
endif
# The OCaml C header files use this flag:
CFLAGS += -D__MINGW32__
endif
......@@ -219,6 +227,11 @@ ifndef OCAMLFIND
endif
export OCAMLFIND
ifndef OCAML
OCAML := ocaml
endif
export OCAML
ifndef OCAMLC
OCAMLC := ocamlc
endif
......@@ -550,8 +563,7 @@ ifdef USE_CAMLP4
CINCFLAGS := -I$(CAMLP4PATH)
endif
DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
INCFLAGS := $(INCFLAGS) $(INCDIRS:%=-I %) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
ifndef MSVC
......@@ -726,7 +738,7 @@ endif
export MAKE_DEPS
ifdef ANNOTATE
ANNOT_FLAG := -dtypes
ANNOT_FLAG := -annot
else
endif
......@@ -858,7 +870,7 @@ dcl: debug-code-library
# generates byte-code libraries with debugging information (native code)
debug-native-code-library: $(PRE_TARGETS)
$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
$(RES_CLIB) $(NCRESULT).cma \
$(RES_CLIB) $(NCRESULT).cmxa \
REAL_RESULT="$(NCRESULT)" make_deps=yes \
REAL_OCAMLC="$(OCAMLOPT)" \
CREATE_LIB=yes \
......@@ -939,7 +951,7 @@ doc: htdoc ladoc psdoc pdfdoc
$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
nolink: $(REAL_IMPL_INTF) $(OBJ_LINK)
......@@ -953,7 +965,7 @@ endif
%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
......@@ -998,27 +1010,35 @@ endif
ifndef LIB_PACK_NAME
$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
else
# Packing a bytecode library
LIB_PACK_NAME_MLI = $(wildcard $(LIB_PACK_NAME).mli)
ifeq ($(LIB_PACK_NAME_MLI),)
LIB_PACK_NAME_CMI = $(LIB_PACK_NAME).cmi
else
# $(LIB_PACK_NAME).mli exists, it likely depends on other compiled interfaces
LIB_PACK_NAME_CMI =
$(LIB_PACK_NAME).cmi: $(REAL_IMPL_INTF)
endif
ifdef BYTE_OCAML
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
# Packing into a unit which can be transformed into a library
# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
else
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL)
endif
$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(LIB_PACK_NAME).cmo
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(filter-out -custom, $(ALL_LDFLAGS)) -o $@ $(LIB_PACK_NAME).cmx
endif
$(RES_CLIB): $(OBJ_LINK)
......@@ -1032,7 +1052,7 @@ else
endif
endif
.mli.cmi: $(EXTRADEPS)
%.cmi: %.mli $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1050,7 +1070,9 @@ endif
$(OCAMLFLAGS) $(INCFLAGS) $<; \
fi
.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
%.cmi: %$(IMPL_SUF);
%$(IMPL_SUF) %.$(EXT_OBJ): %.ml $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1106,17 +1128,17 @@ endif
$(CAMLIDLFLAGS) $<
$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
.c.$(EXT_OBJ):
%.$(EXT_OBJ): %.c
$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
$(CPPFLAGS) $(CPPFLAGS_WIN32) \
$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
.m.$(EXT_OBJ):
%.$(EXT_OBJ): %.m
$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
.$(EXT_CXX).$(EXT_OBJ):
%.$(EXT_OBJ): %.$(EXT_CXX)
$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
......@@ -1126,27 +1148,27 @@ $(MLDEPDIR)/%.d: %.ml
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< \> $@; \
$(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< > $@; \
$(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli
$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(DOC_DIR)/$(RESULT)/html:
......
......@@ -115,12 +115,13 @@ endif
SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
# This may be
# - mingw
# - mingw64
# - win32
# - cygwin
# - some other string means Unix
# - empty means ocamlc does not support -config
ifeq ($(SYSTEM),mingw)
ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
MINGW=1
endif
ifeq ($(SYSTEM),win32)
......@@ -130,11 +131,18 @@ endif
ifdef MINGW
export MINGW
WIN32 := 1
# We are compiling with cygwin tools:
CFLAGS_WIN32 := -mno-cygwin
# The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
# NTVDM CPU has encountered an illegal instruction'.
ifndef CC
MNO_CYGWIN := $(shell gcc -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
CC := gcc
else
MNO_CYGWIN := $(shell $$CC -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
endif
# We are compiling with cygwin tools:
ifeq ($(MNO_CYGWIN),0)
CFLAGS_WIN32 := -mno-cygwin
endif
# The OCaml C header files use this flag:
CFLAGS += -D__MINGW32__
endif
......@@ -219,6 +227,11 @@ ifndef OCAMLFIND
endif
export OCAMLFIND
ifndef OCAML
OCAML := ocaml
endif
export OCAML
ifndef OCAMLC
OCAMLC := ocamlc
endif
......@@ -550,8 +563,7 @@ ifdef USE_CAMLP4
CINCFLAGS := -I$(CAMLP4PATH)
endif
DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
INCFLAGS := $(INCFLAGS) $(INCDIRS:%=-I %) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
ifndef MSVC
......@@ -726,7 +738,7 @@ endif
export MAKE_DEPS
ifdef ANNOTATE
ANNOT_FLAG := -dtypes
ANNOT_FLAG := -annot
else
endif
......@@ -858,7 +870,7 @@ dcl: debug-code-library
# generates byte-code libraries with debugging information (native code)
debug-native-code-library: $(PRE_TARGETS)
$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
$(RES_CLIB) $(NCRESULT).cma \
$(RES_CLIB) $(NCRESULT).cmxa \
REAL_RESULT="$(NCRESULT)" make_deps=yes \
REAL_OCAMLC="$(OCAMLOPT)" \
CREATE_LIB=yes \
......@@ -939,7 +951,7 @@ doc: htdoc ladoc psdoc pdfdoc
$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
nolink: $(REAL_IMPL_INTF) $(OBJ_LINK)
......@@ -953,7 +965,7 @@ endif
%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
......@@ -998,27 +1010,35 @@ endif
ifndef LIB_PACK_NAME
$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
else
# Packing a bytecode library
LIB_PACK_NAME_MLI = $(wildcard $(LIB_PACK_NAME).mli)
ifeq ($(LIB_PACK_NAME_MLI),)
LIB_PACK_NAME_CMI = $(LIB_PACK_NAME).cmi
else
# $(LIB_PACK_NAME).mli exists, it likely depends on other compiled interfaces
LIB_PACK_NAME_CMI =
$(LIB_PACK_NAME).cmi: $(REAL_IMPL_INTF)
endif
ifdef BYTE_OCAML
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
# Packing into a unit which can be transformed into a library
# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
else
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL)
endif
$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(LIB_PACK_NAME).cmo
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(filter-out -custom, $(ALL_LDFLAGS)) -o $@ $(LIB_PACK_NAME).cmx
endif
$(RES_CLIB): $(OBJ_LINK)
......@@ -1032,7 +1052,7 @@ else
endif
endif
.mli.cmi: $(EXTRADEPS)
%.cmi: %.mli $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1050,7 +1070,9 @@ endif
$(OCAMLFLAGS) $(INCFLAGS) $<; \
fi
.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
%.cmi: %$(IMPL_SUF);
%$(IMPL_SUF) %.$(EXT_OBJ): %.ml $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1106,17 +1128,17 @@ endif
$(CAMLIDLFLAGS) $<
$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
.c.$(EXT_OBJ):
%.$(EXT_OBJ): %.c
$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
$(CPPFLAGS) $(CPPFLAGS_WIN32) \
$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
.m.$(EXT_OBJ):
%.$(EXT_OBJ): %.m
$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
.$(EXT_CXX).$(EXT_OBJ):
%.$(EXT_OBJ): %.$(EXT_CXX)
$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
......@@ -1126,27 +1148,27 @@ $(MLDEPDIR)/%.d: %.ml
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< \> $@; \
$(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< > $@; \
$(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli
$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(DOC_DIR)/$(RESULT)/html:
......
......@@ -115,12 +115,13 @@ endif
SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
# This may be
# - mingw
# - mingw64
# - win32
# - cygwin
# - some other string means Unix
# - empty means ocamlc does not support -config
ifeq ($(SYSTEM),mingw)
ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
MINGW=1
endif
ifeq ($(SYSTEM),win32)
......@@ -130,11 +131,18 @@ endif
ifdef MINGW
export MINGW
WIN32 := 1
# We are compiling with cygwin tools:
CFLAGS_WIN32 := -mno-cygwin
# The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
# NTVDM CPU has encountered an illegal instruction'.
ifndef CC
MNO_CYGWIN := $(shell gcc -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
CC := gcc
else
MNO_CYGWIN := $(shell $$CC -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
endif
# We are compiling with cygwin tools:
ifeq ($(MNO_CYGWIN),0)
CFLAGS_WIN32 := -mno-cygwin
endif
# The OCaml C header files use this flag:
CFLAGS += -D__MINGW32__
endif
......@@ -219,6 +227,11 @@ ifndef OCAMLFIND
endif
export OCAMLFIND
ifndef OCAML
OCAML := ocaml
endif
export OCAML
ifndef OCAMLC
OCAMLC := ocamlc
endif
......@@ -550,8 +563,7 @@ ifdef USE_CAMLP4
CINCFLAGS := -I$(CAMLP4PATH)
endif
DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
INCFLAGS := $(INCFLAGS) $(INCDIRS:%=-I %) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
ifndef MSVC
......@@ -726,7 +738,7 @@ endif
export MAKE_DEPS
ifdef ANNOTATE
ANNOT_FLAG := -dtypes
ANNOT_FLAG := -annot
else
endif
......@@ -858,7 +870,7 @@ dcl: debug-code-library
# generates byte-code libraries with debugging information (native code)
debug-native-code-library: $(PRE_TARGETS)
$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
$(RES_CLIB) $(NCRESULT).cma \
$(RES_CLIB) $(NCRESULT).cmxa \
REAL_RESULT="$(NCRESULT)" make_deps=yes \
REAL_OCAMLC="$(OCAMLOPT)" \
CREATE_LIB=yes \
......@@ -939,7 +951,7 @@ doc: htdoc ladoc psdoc pdfdoc
$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
nolink: $(REAL_IMPL_INTF) $(OBJ_LINK)
......@@ -953,7 +965,7 @@ endif
%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
......@@ -998,27 +1010,35 @@ endif
ifndef LIB_PACK_NAME
$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
else
# Packing a bytecode library
LIB_PACK_NAME_MLI = $(wildcard $(LIB_PACK_NAME).mli)
ifeq ($(LIB_PACK_NAME_MLI),)
LIB_PACK_NAME_CMI = $(LIB_PACK_NAME).cmi
else
# $(LIB_PACK_NAME).mli exists, it likely depends on other compiled interfaces
LIB_PACK_NAME_CMI =
$(LIB_PACK_NAME).cmi: $(REAL_IMPL_INTF)
endif
ifdef BYTE_OCAML
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
# Packing into a unit which can be transformed into a library
# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
else
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL)
endif
$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(LIB_PACK_NAME).cmo
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(filter-out -custom, $(ALL_LDFLAGS)) -o $@ $(LIB_PACK_NAME).cmx
endif
$(RES_CLIB): $(OBJ_LINK)
......@@ -1032,7 +1052,7 @@ else
endif
endif
.mli.cmi: $(EXTRADEPS)
%.cmi: %.mli $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1050,7 +1070,9 @@ endif
$(OCAMLFLAGS) $(INCFLAGS) $<; \
fi
.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
%.cmi: %$(IMPL_SUF);
%$(IMPL_SUF) %.$(EXT_OBJ): %.ml $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1106,17 +1128,17 @@ endif
$(CAMLIDLFLAGS) $<
$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
.c.$(EXT_OBJ):
%.$(EXT_OBJ): %.c
$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
$(CPPFLAGS) $(CPPFLAGS_WIN32) \
$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
.m.$(EXT_OBJ):
%.$(EXT_OBJ): %.m
$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
.$(EXT_CXX).$(EXT_OBJ):
%.$(EXT_OBJ): %.$(EXT_CXX)
$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
......@@ -1126,27 +1148,27 @@ $(MLDEPDIR)/%.d: %.ml
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< \> $@; \
$(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< > $@; \
$(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli
$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(DOC_DIR)/$(RESULT)/html:
......
......@@ -4,10 +4,10 @@ INCDIRS = ../../src ../../external/oss ../../external/mad
LIBS = unix bigarray mad mm mm.oss mm.mad
OCAMLFLAGS = -g
all: dnc
test: all
OCAMLRUNPARAM=b ./dictee ../test.mp3
all: dnc
include OCamlMakefile
include ../../external/Makefile.defs
......@@ -115,12 +115,13 @@ endif
SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
# This may be
# - mingw
# - mingw64
# - win32
# - cygwin
# - some other string means Unix
# - empty means ocamlc does not support -config
ifeq ($(SYSTEM),mingw)
ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
MINGW=1
endif
ifeq ($(SYSTEM),win32)
......@@ -130,11 +131,18 @@ endif
ifdef MINGW
export MINGW
WIN32 := 1
# We are compiling with cygwin tools:
CFLAGS_WIN32 := -mno-cygwin
# The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
# NTVDM CPU has encountered an illegal instruction'.
ifndef CC
MNO_CYGWIN := $(shell gcc -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
CC := gcc
else
MNO_CYGWIN := $(shell $$CC -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
endif
# We are compiling with cygwin tools:
ifeq ($(MNO_CYGWIN),0)
CFLAGS_WIN32 := -mno-cygwin
endif
# The OCaml C header files use this flag:
CFLAGS += -D__MINGW32__
endif
......@@ -219,6 +227,11 @@ ifndef OCAMLFIND
endif
export OCAMLFIND
ifndef OCAML
OCAML := ocaml
endif
export OCAML
ifndef OCAMLC
OCAMLC := ocamlc
endif
......@@ -550,8 +563,7 @@ ifdef USE_CAMLP4
CINCFLAGS := -I$(CAMLP4PATH)
endif
DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
INCFLAGS := $(INCFLAGS) $(INCDIRS:%=-I %) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
ifndef MSVC
......@@ -726,7 +738,7 @@ endif
export MAKE_DEPS
ifdef ANNOTATE
ANNOT_FLAG := -dtypes
ANNOT_FLAG := -annot
else
endif
......@@ -858,7 +870,7 @@ dcl: debug-code-library
# generates byte-code libraries with debugging information (native code)
debug-native-code-library: $(PRE_TARGETS)
$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
$(RES_CLIB) $(NCRESULT).cma \
$(RES_CLIB) $(NCRESULT).cmxa \
REAL_RESULT="$(NCRESULT)" make_deps=yes \
REAL_OCAMLC="$(OCAMLOPT)" \
CREATE_LIB=yes \
......@@ -939,7 +951,7 @@ doc: htdoc ladoc psdoc pdfdoc
$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
nolink: $(REAL_IMPL_INTF) $(OBJ_LINK)
......@@ -953,7 +965,7 @@ endif
%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
......@@ -998,27 +1010,35 @@ endif
ifndef LIB_PACK_NAME
$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
else
# Packing a bytecode library
LIB_PACK_NAME_MLI = $(wildcard $(LIB_PACK_NAME).mli)
ifeq ($(LIB_PACK_NAME_MLI),)
LIB_PACK_NAME_CMI = $(LIB_PACK_NAME).cmi
else
# $(LIB_PACK_NAME).mli exists, it likely depends on other compiled interfaces
LIB_PACK_NAME_CMI =
$(LIB_PACK_NAME).cmi: $(REAL_IMPL_INTF)
endif
ifdef BYTE_OCAML
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
# Packing into a unit which can be transformed into a library
# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
else
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL)
endif
$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(LIB_PACK_NAME).cmo
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(filter-out -custom, $(ALL_LDFLAGS)) -o $@ $(LIB_PACK_NAME).cmx
endif
$(RES_CLIB): $(OBJ_LINK)
......@@ -1032,7 +1052,7 @@ else
endif
endif
.mli.cmi: $(EXTRADEPS)
%.cmi: %.mli $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1050,7 +1070,9 @@ endif
$(OCAMLFLAGS) $(INCFLAGS) $<; \
fi
.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
%.cmi: %$(IMPL_SUF);
%$(IMPL_SUF) %.$(EXT_OBJ): %.ml $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1106,17 +1128,17 @@ endif
$(CAMLIDLFLAGS) $<
$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
.c.$(EXT_OBJ):
%.$(EXT_OBJ): %.c
$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
$(CPPFLAGS) $(CPPFLAGS_WIN32) \
$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
.m.$(EXT_OBJ):
%.$(EXT_OBJ): %.m
$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
.$(EXT_CXX).$(EXT_OBJ):
%.$(EXT_OBJ): %.$(EXT_CXX)
$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
......@@ -1126,27 +1148,27 @@ $(MLDEPDIR)/%.d: %.ml
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< \> $@; \
$(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< > $@; \
$(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli
$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(DOC_DIR)/$(RESULT)/html:
......
......@@ -115,12 +115,13 @@ endif
SYSTEM := $(shell ocamlc -config 2>/dev/null | grep system | sed 's/system: //')
# This may be
# - mingw
# - mingw64
# - win32
# - cygwin
# - some other string means Unix
# - empty means ocamlc does not support -config
ifeq ($(SYSTEM),mingw)
ifeq ($(SYSTEM),$(filter $(SYSTEM),mingw mingw64))
MINGW=1
endif
ifeq ($(SYSTEM),win32)
......@@ -130,11 +131,18 @@ endif
ifdef MINGW
export MINGW
WIN32 := 1
# We are compiling with cygwin tools:
CFLAGS_WIN32 := -mno-cygwin
# The default value 'cc' makes 'ocamlc -cc "cc"' raises the error 'The
# NTVDM CPU has encountered an illegal instruction'.
ifndef CC
MNO_CYGWIN := $(shell gcc -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
CC := gcc
else
MNO_CYGWIN := $(shell $$CC -Wextra -v --help 2>/dev/null | grep -q '\-mno-cygwin'; echo $$?)
endif
# We are compiling with cygwin tools:
ifeq ($(MNO_CYGWIN),0)
CFLAGS_WIN32 := -mno-cygwin
endif
# The OCaml C header files use this flag:
CFLAGS += -D__MINGW32__
endif
......@@ -219,6 +227,11 @@ ifndef OCAMLFIND
endif
export OCAMLFIND
ifndef OCAML
OCAML := ocaml
endif
export OCAML
ifndef OCAMLC
OCAMLC := ocamlc
endif
......@@ -550,8 +563,7 @@ ifdef USE_CAMLP4
CINCFLAGS := -I$(CAMLP4PATH)
endif
DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
INCFLAGS := $(INCFLAGS) $(INCDIRS:%=-I %) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
ifndef MSVC
......@@ -726,7 +738,7 @@ endif
export MAKE_DEPS
ifdef ANNOTATE
ANNOT_FLAG := -dtypes
ANNOT_FLAG := -annot
else
endif
......@@ -858,7 +870,7 @@ dcl: debug-code-library
# generates byte-code libraries with debugging information (native code)
debug-native-code-library: $(PRE_TARGETS)
$(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
$(RES_CLIB) $(NCRESULT).cma \
$(RES_CLIB) $(NCRESULT).cmxa \
REAL_RESULT="$(NCRESULT)" make_deps=yes \
REAL_OCAMLC="$(OCAMLOPT)" \
CREATE_LIB=yes \
......@@ -939,7 +951,7 @@ doc: htdoc ladoc psdoc pdfdoc
$(REAL_RESULT): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
nolink: $(REAL_IMPL_INTF) $(OBJ_LINK)
......@@ -953,7 +965,7 @@ endif
%$(TOPSUFFIX): $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
$(REAL_OCAMLFIND) $(OCAMLMKTOP) \
$(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
$(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
$(OBJS_LIBS) $(ALL_LDFLAGS) -o $@$(EXE) \
$(REAL_IMPL)
.SUFFIXES: .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
......@@ -998,27 +1010,35 @@ endif
ifndef LIB_PACK_NAME
$(RESULT).cma: $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(REAL_IMPL_INTF) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(REAL_IMPL)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(REAL_IMPL)
else
# Packing a bytecode library
LIB_PACK_NAME_MLI = $(wildcard $(LIB_PACK_NAME).mli)
ifeq ($(LIB_PACK_NAME_MLI),)
LIB_PACK_NAME_CMI = $(LIB_PACK_NAME).cmi
else
# $(LIB_PACK_NAME).mli exists, it likely depends on other compiled interfaces
LIB_PACK_NAME_CMI =
$(LIB_PACK_NAME).cmi: $(REAL_IMPL_INTF)
endif
ifdef BYTE_OCAML
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o $(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
# Packing into a unit which can be transformed into a library
# Remember the .ml's must have been compiled with -for-pack $(LIB_PACK_NAME)
else
$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(LIB_PACK_NAME_CMI) $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
$(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o $(LIB_PACK_NAME).cmx $(OCAMLLDFLAGS) $(REAL_IMPL)
endif
$(RESULT).cma: $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
$(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(OBJS_LIBS) $(ALL_LDFLAGS) -o $@ $(LIB_PACK_NAME).cmo
$(RESULT).cmxa $(RESULT).$(EXT_LIB): $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, $(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
$(REAL_OCAMLFIND) $(OCAMLOPT) -a $(OBJS_LIBS) $(filter-out -custom, $(ALL_LDFLAGS)) -o $@ $(LIB_PACK_NAME).cmx
endif
$(RES_CLIB): $(OBJ_LINK)
......@@ -1032,7 +1052,7 @@ else
endif
endif
.mli.cmi: $(EXTRADEPS)
%.cmi: %.mli $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1050,7 +1070,9 @@ endif
$(OCAMLFLAGS) $(INCFLAGS) $<; \
fi
.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
%.cmi: %$(IMPL_SUF);
%$(IMPL_SUF) %.$(EXT_OBJ): %.ml $(EXTRADEPS)
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) $(OCAML_FIND_PACKAGES) \
......@@ -1106,17 +1128,17 @@ endif
$(CAMLIDLFLAGS) $<
$(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
.c.$(EXT_OBJ):
%.$(EXT_OBJ): %.c
$(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
$(CPPFLAGS) $(CPPFLAGS_WIN32) \
$(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
.m.$(EXT_OBJ):
%.$(EXT_OBJ): %.m
$(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
.$(EXT_CXX).$(EXT_OBJ):
%.$(EXT_OBJ): %.$(EXT_CXX)
$(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-I'$(OCAMLLIBPATH)' \
$< $(CFLAG_O)$@
......@@ -1126,27 +1148,27 @@ $(MLDEPDIR)/%.d: %.ml
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< \> $@; \
$(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
$(DINCFLAGS) $< > $@; \
$(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(BCDIDIR)/%.di $(NCDIDIR)/%.di: %.mli
$(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
$(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' $<`; \
if [ -z "$$pp" ]; then \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(DINCFLAGS) $< > $@; \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) $(INCFLAGS) $< > $@; \
else \
$(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-pp \"$$pp $(PPFLAGS)\" $(INCFLAGS) $< \> $@; \
$(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-pp "$$pp $(PPFLAGS)" $(INCFLAGS) $< > $@; \
fi
$(DOC_DIR)/$(RESULT)/html:
......
......@@ -6,7 +6,7 @@ let read_PPM ?alpha fname =
let data = Bytes.create len in
really_input ic data 0 len;
close_in ic;
Img.of_PPM ?alpha data
Img.of_PPM ?alpha (Bytes.unsafe_to_string data)
let () =
let fname = Sys.argv.(1) in
......
SOURCES = drums.ml
RESULT = drums
INCDIRS = ../../src ../../external/oss ../../external/sdl +sdl
LIBS = unix bigarray mm mm.oss sdl mm.sdl
INCDIRS = ../../src ../../external/oss ../../external/sdl
PACKS = sdl
LIBS = mm mm.oss mm.sdl
all: nc
test: all
./drums
all: nc
include OCamlMakefile