|
Packit |
851387 |
##########################################################################
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# This file is part of Calendar. #
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# Copyright (C) 2003-2011 Julien Signoles #
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# you can redistribute it and/or modify it under the terms of the GNU #
|
|
Packit |
851387 |
# Lesser General Public License version 2.1 as published by the #
|
|
Packit |
851387 |
# Free Software Foundation, with a special linking exception (usual #
|
|
Packit |
851387 |
# for Objective Caml libraries). #
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# It is distributed in the hope that it will be useful, #
|
|
Packit |
851387 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
Packit |
851387 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR #
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# See the GNU Lesser General Public Licence version 2.1 for more #
|
|
Packit |
851387 |
# details (enclosed in the file LGPL). #
|
|
Packit |
851387 |
# #
|
|
Packit |
851387 |
# The special linking exception is detailled in the enclosed file #
|
|
Packit |
851387 |
# LICENSE. #
|
|
Packit |
851387 |
##########################################################################
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Used programs
|
|
Packit |
851387 |
###############
|
|
Packit |
851387 |
|
|
Packit |
851387 |
CAMLC = @OCAMLC@
|
|
Packit |
851387 |
CAMLOPT = @OCAMLOPT@
|
|
Packit |
851387 |
CAMLDEP = @OCAMLDEP@
|
|
Packit |
851387 |
CAMLDOC = @OCAMLDOC@
|
|
Packit |
851387 |
CAMLWEB = @OCAMLWEB@
|
|
Packit |
851387 |
CAMLWC = @OCAMLWC@
|
|
Packit |
851387 |
CAMLDOT = @OCAMLDOT@
|
|
Packit |
851387 |
CAMLLIB = @OCAMLLIB@
|
|
Packit |
851387 |
CAMLFIND= @OCAMLFIND@
|
|
Packit |
851387 |
CAMLMAJORVERSION= @OCAMLMAJOR@
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Object/Library File Extensions
|
|
Packit |
851387 |
OBJ_EXT = @OBJEXT@
|
|
Packit |
851387 |
LIB_EXT = @LIBEXT@
|
|
Packit |
851387 |
|
|
Packit |
851387 |
HAS_NATDYNLINK=@HAS_NATDYNLINK@
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Project
|
|
Packit |
851387 |
#########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
NAME = calendar
|
|
Packit |
851387 |
NAMELIB = calendarLib
|
|
Packit |
851387 |
VERSION = 2.04
|
|
Packit |
851387 |
|
|
Packit |
851387 |
LIBDIR = target
|
|
Packit |
851387 |
|
|
Packit |
851387 |
LIBS = $(LIBDIR)/$(NAMELIB).cmo $(LIBDIR)/$(NAMELIB).cma
|
|
Packit |
851387 |
CLIBS =
|
|
Packit |
851387 |
ifneq ($(CAMLOPT),no)
|
|
Packit |
851387 |
LIBS := $(LIBS) $(LIBDIR)/$(NAMELIB).cmx $(LIBDIR)/$(NAMELIB).cmxa
|
|
Packit |
851387 |
ifeq ($(HAS_NATDYNLINK),yes)
|
|
Packit |
851387 |
LIBS := $(LIBS) $(LIBDIR)/$(NAMELIB).cmxs
|
|
Packit |
851387 |
endif
|
|
Packit |
851387 |
CLIBS := $(CLIBS) $(LIBDIR)/$(NAMELIB)$(OBJ_EXT) \
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB)$(LIB_EXT)
|
|
Packit |
851387 |
endif
|
|
Packit |
851387 |
|
|
Packit |
851387 |
DIRS = src target tests
|
|
Packit |
851387 |
|
|
Packit |
851387 |
SRC = utils.mli utils.ml time_Zone.mli time_Zone.ml period.mli \
|
|
Packit |
851387 |
time_sig.mli time.mli time.ml ftime.mli ftime.ml \
|
|
Packit |
851387 |
date_sig.mli date.mli date.ml \
|
|
Packit |
851387 |
calendar_sig.mli calendar_builder.mli calendar_builder.ml \
|
|
Packit |
851387 |
calendar.mli calendar.ml fcalendar.mli fcalendar.ml \
|
|
Packit |
851387 |
printer.mli printer.ml \
|
|
Packit |
851387 |
version.mli version.ml
|
|
Packit |
851387 |
SRC := $(addprefix src/, $(SRC))
|
|
Packit |
851387 |
|
|
Packit |
851387 |
ML = $(filter %.ml, $(SRC))
|
|
Packit |
851387 |
MLI = $(filter %.mli, $(SRC))
|
|
Packit |
851387 |
|
|
Packit |
851387 |
CMO = $(ML:.ml=.cmo)
|
|
Packit |
851387 |
CMX = $(CMO:.cmo=.cmx)
|
|
Packit |
851387 |
CMI = $(MLI:.mli=.cmi)
|
|
Packit |
851387 |
CMI_ONLY= src/period.cmi src/date_sig.cmi src/time_sig.cmi src/calendar_sig.cmi
|
|
Packit |
851387 |
|
|
Packit |
851387 |
GENERATED= src/version.ml
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Libs and flags
|
|
Packit |
851387 |
################
|
|
Packit |
851387 |
|
|
Packit |
851387 |
CAMLIBS = $(addprefix -I , $(DIRS))
|
|
Packit |
851387 |
|
|
Packit Service |
d580d2 |
CAMLFLAGS= -g $(CAMLIBS)
|
|
Packit |
851387 |
BYTEFLAGS= $(CAMLFLAGS)
|
|
Packit |
851387 |
LINK_OPTFLAGS = $(CAMLFLAGS) -noassert
|
|
Packit |
851387 |
OPTFLAGS = $(LINK_OPTFLAGS) -for-pack CalendarLib
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Main rules
|
|
Packit |
851387 |
############
|
|
Packit |
851387 |
|
|
Packit |
851387 |
all: $(LIBS) META
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB).cmo: $(CMI_ONLY) $(CMO)
|
|
Packit |
851387 |
mkdir -p $(LIBDIR)
|
|
Packit |
851387 |
$(CAMLFIND) ocamlc $(BYTEFLAGS) -pack -o $@ \
|
|
Packit |
851387 |
$(filter-out $(LIBDIR), $^)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB).cma: $(LIBDIR)/$(NAMELIB).cmo
|
|
Packit |
851387 |
$(CAMLFIND) ocamlc $(BYTEFLAGS) -a -o $@ $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB).cmx: $(CMI_ONLY) $(CMX)
|
|
Packit |
851387 |
mkdir -p $(LIBDIR)
|
|
Packit |
851387 |
$(CAMLFIND) ocamlopt $(LINK_OPTFLAGS) -pack -o $@ \
|
|
Packit |
851387 |
$(filter-out $(LIBDIR), $^)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB).a $(LIBDIR)/$(NAMELIB).cmxa: $(LIBDIR)/$(NAMELIB).cmx
|
|
Packit |
851387 |
$(CAMLFIND) ocamlopt $(LINK_OPTFLAGS) -a -o $@ $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(LIBDIR)/$(NAMELIB).cmxs: $(LIBDIR)/$(NAMELIB).cmxa
|
|
Packit |
851387 |
$(CAMLFIND) ocamlopt -I $(LIBDIR) -shared -linkall -o $@ $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
src/version.ml: Makefile
|
|
Packit |
851387 |
echo "let version = \"$(VERSION)\"" > $@
|
|
Packit |
851387 |
echo "let date = \"`date`\"" >> $@
|
|
Packit |
851387 |
|
|
Packit |
851387 |
META: Makefile
|
|
Packit |
851387 |
echo "name = \"$(NAME)\"" > $@
|
|
Packit |
851387 |
echo "description = \"$(NAME) library\"" >> $@
|
|
Packit |
851387 |
echo "version = \"$(VERSION)\"" >> $@
|
|
Packit |
851387 |
echo "archive(byte) = \"$(NAMELIB).cma\"" >> $@
|
|
Packit |
851387 |
echo "archive(native) = \"$(NAMELIB).cmxa\"" >> $@
|
|
Packit |
851387 |
echo "requires = \"unix str\"" >> $@
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Generic rules
|
|
Packit |
851387 |
###############
|
|
Packit |
851387 |
|
|
Packit |
851387 |
%.gz: %
|
|
Packit |
851387 |
gzip -f --best $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.SUFFIXES: .ml .mli .cmo .cmi .cmx $(OBJ_EXT)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.mli.cmi:
|
|
Packit |
851387 |
$(CAMLC) $(BYTEFLAGS) -c $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.ml.cmo:
|
|
Packit |
851387 |
$(CAMLC) $(BYTEFLAGS) -c $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.ml$(OBJ_EXT):
|
|
Packit |
851387 |
$(CAMLOPT) $(OPTFLAGS) -c $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.ml.cmx:
|
|
Packit |
851387 |
$(CAMLOPT) $(OPTFLAGS) -c $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Tests
|
|
Packit |
851387 |
#######
|
|
Packit |
851387 |
|
|
Packit |
851387 |
TESTS_SRC= gen_test.mli gen_test.ml test_timezone.ml test_time.ml \
|
|
Packit |
851387 |
test_ftime.ml test_date.ml test_calendar.ml test_fcalendar.ml \
|
|
Packit |
851387 |
test_pcalendar.ml test_fpcalendar.ml test_printer.ml test.ml
|
|
Packit |
851387 |
TESTS_SRC:= $(addprefix tests/, $(TESTS_SRC))
|
|
Packit |
851387 |
|
|
Packit |
851387 |
TESTS_ML= $(filter %.ml, $(TESTS_SRC))
|
|
Packit |
851387 |
TESTS_CMO= $(TESTS_ML:.ml=.cmo)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(TESTS_CMO) $(TESTS_CMI): $(LIBDIR)/$(NAMELIB).cmo $(LIBDIR)/$(NAMELIB).cmi
|
|
Packit |
851387 |
|
|
Packit |
851387 |
tests/test: $(LIBDIR)/$(NAMELIB).cmo $(TESTS_CMO)
|
|
Packit |
851387 |
$(CAMLC) -o $@ $(BYTEFLAGS) unix.cma str.cma $(LIBDIR)/$(NAMELIB).cmo \
|
|
Packit |
851387 |
$(TESTS_CMO)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.PHONY: tests
|
|
Packit |
851387 |
tests: tests/test
|
|
Packit |
851387 |
./$<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Documentation
|
|
Packit |
851387 |
###############
|
|
Packit |
851387 |
|
|
Packit |
851387 |
wc: $(SRC)
|
|
Packit |
851387 |
$(CAMLWC) -p $^
|
|
Packit |
851387 |
|
|
Packit |
851387 |
$(NAMELIB).ps: $(SRC)
|
|
Packit |
851387 |
$(CAMLWEB) --ps -o $@ $^
|
|
Packit |
851387 |
|
|
Packit |
851387 |
ifeq ($(CAMLMAJORVERSION),3)
|
|
Packit |
851387 |
utils/example.ml: utils/example.ml.3 Makefile
|
|
Packit |
851387 |
cp $< $@
|
|
Packit |
851387 |
else
|
|
Packit |
851387 |
utils/example.ml: utils/example.ml.4 Makefile
|
|
Packit |
851387 |
cp $< $@
|
|
Packit |
851387 |
endif
|
|
Packit |
851387 |
|
|
Packit |
851387 |
utils/example.cmo: utils/example.ml
|
|
Packit |
851387 |
$(CAMLC) -I +ocamldoc -I utils -c $<
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.PHONY: doc
|
|
Packit |
851387 |
doc: $(CMO) utils/example.cmo
|
|
Packit |
851387 |
mkdir -p doc
|
|
Packit |
851387 |
rm -f doc/*
|
|
Packit |
851387 |
$(CAMLDOC) -g utils/example.cmo -colorize-code -I src -d doc \
|
|
Packit |
851387 |
$(MLI) $(ML)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Headers
|
|
Packit |
851387 |
#########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.PHONY: headers
|
|
Packit |
851387 |
headers:
|
|
Packit |
851387 |
headache -c headache_config.txt -h HEADER $(SRC) $(TESTS_SRC) \
|
|
Packit |
851387 |
Makefile.in utils/example.ml
|
|
Packit |
851387 |
headache -c headache_config.txt -h CONFIGURE_HEADER configure.in
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Install
|
|
Packit |
851387 |
#########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
install: $(LIBS) $(CLIBS) META
|
|
Packit |
851387 |
@if [ "`sed -n -e 's/version = "\([0-9.+dev]*\)"/\1/p' META`" = "$(VERSION)" ]; then \
|
|
Packit |
851387 |
(if test -d `ocamlfind install -help | grep destdir | sed -e "s/.*default: \(.*\))/\1/"`/$(NAME); then $(MAKE) uninstall; fi;\
|
|
Packit |
851387 |
$(CAMLFIND) install $(NAME) target/*.cm* $(MLI) $(CLIBS) META); \
|
|
Packit |
851387 |
else \
|
|
Packit |
851387 |
(echo; echo "Not the good version. Please, do :"; \
|
|
Packit |
851387 |
echo " make clean && make"; \
|
|
Packit |
851387 |
echo "next reinstall"; echo) \
|
|
Packit |
851387 |
fi
|
|
Packit |
851387 |
|
|
Packit |
851387 |
uninstall:
|
|
Packit |
851387 |
$(CAMLFIND) remove $(NAME)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Exporting
|
|
Packit |
851387 |
###########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
EXPORT_DIR= $$HOME/EXPORT/$(NAME)
|
|
Packit |
851387 |
TMP_DIR = $$HOME/tmp
|
|
Packit |
851387 |
|
|
Packit |
851387 |
ROOT= $$HOME/DEV/calendar
|
|
Packit |
851387 |
|
|
Packit |
851387 |
export: doc
|
|
Packit |
851387 |
(cd $(TMP_DIR); \
|
|
Packit |
851387 |
svn co svn+ssh://signoles@svn.forge.ocamlcore.org/svnroot/calendar/trunk)
|
|
Packit |
851387 |
svn copy $(TMP_DIR)/trunk $(ROOT)/tags/v$(VERSION)
|
|
Packit |
851387 |
rm -rf $(TMP_DIR)/trunk
|
|
Packit |
851387 |
(cd $(ROOT)/tags; svn commit -m "v $(VERSION)")
|
|
Packit |
851387 |
rm -rf $(EXPORT_DIR)/doc
|
|
Packit |
851387 |
mkdir -p $(EXPORT_DIR)
|
|
Packit |
851387 |
cp -rf CHANGES doc $(EXPORT_DIR)
|
|
Packit |
851387 |
cp -rf $(ROOT)/tags/v$(VERSION) $(TMP_DIR)/$(NAME)-$(VERSION)
|
|
Packit |
851387 |
cp -rf .depend configure config.status doc $(TMP_DIR)/$(NAME)-$(VERSION)
|
|
Packit |
851387 |
cd $(TMP_DIR); \
|
|
Packit |
851387 |
(rm -rf $(NAME)-$(VERSION)/.svn $(NAME)-$(VERSION)/*/.svn; \
|
|
Packit |
851387 |
tar cvf $(NAME)-$(VERSION).tar $(NAME)-$(VERSION); \
|
|
Packit |
851387 |
gzip -f --best $(NAME)-$(VERSION).tar; \
|
|
Packit |
851387 |
rm -rf $(NAME)-$(VERSION); \
|
|
Packit |
851387 |
mv $(NAME)-$(VERSION).tar.gz $(EXPORT_DIR))
|
|
Packit |
851387 |
rm -rf $(TMP_DIR)/$(NAME)-$(VERSION)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Rebuilding Makefile
|
|
Packit |
851387 |
#####################
|
|
Packit |
851387 |
|
|
Packit |
851387 |
Makefile: Makefile.in
|
|
Packit |
851387 |
./config.status
|
|
Packit |
851387 |
|
|
Packit |
851387 |
config.status: configure
|
|
Packit |
851387 |
./config.status --recheck
|
|
Packit |
851387 |
|
|
Packit |
851387 |
configure: configure.in
|
|
Packit |
851387 |
autoconf
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Emacs tags
|
|
Packit |
851387 |
############
|
|
Packit |
851387 |
|
|
Packit |
851387 |
TAGS: $(SRC)
|
|
Packit |
851387 |
otags -o $@ $^
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Cleaning
|
|
Packit |
851387 |
##########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
clean:
|
|
Packit |
851387 |
rm -f TAGS META $(TESTS) tests/test $(GENERATED)
|
|
Packit |
851387 |
for i in . src tests utils; do \
|
|
Packit |
851387 |
rm -f $$i/*~ $$i/\#* $$i/*.cm[iox] $$i/*.*a $$i/*$(OBJ_EXT) $$i/a.out; \
|
|
Packit |
851387 |
done
|
|
Packit |
851387 |
rm -f utils/example.ml
|
|
Packit |
851387 |
|
|
Packit |
851387 |
dist-clean distclean: clean
|
|
Packit |
851387 |
rm -rf $(NAME).ps.gz doc $(LIBDIR)
|
|
Packit |
851387 |
|
|
Packit |
851387 |
clean-configure cleanconfig: dist-clean
|
|
Packit |
851387 |
rm -f Makefile configure config.*
|
|
Packit |
851387 |
|
|
Packit |
851387 |
# Depend
|
|
Packit |
851387 |
########
|
|
Packit |
851387 |
|
|
Packit |
851387 |
.depend depend: $(GENERATED)
|
|
Packit |
851387 |
rm -f .depend
|
|
Packit |
851387 |
$(CAMLDEP) -I src -I tests src/*.ml src/*.mli tests/*.ml tests/*.mli \
|
|
Packit |
851387 |
> .depend
|
|
Packit |
851387 |
|
|
Packit |
851387 |
view-depend:
|
|
Packit |
851387 |
$(CAMLDOT) .depend | dot -Tps | gv -
|
|
Packit |
851387 |
|
|
Packit |
851387 |
include .depend
|