# RDFInt.php - RDF Interfaces for PHP
# Copyright 2011 netlabs.org
# Author: Christian Langanke, Adrian Gschwend
#
# 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.
# CONFIGURE HERE
LIBNAME=RDFint.php
LIBDESCRIPTION=RDF Interfaces for PHP
LIBROOT=..
OUTPUTDIR=doc
SOURCEFILES=*.php
SOURCEFILES_EXCLUDE=*/.svn/* */classes/Core.php */unittest/* */samples/* */fdebug.php */doxygen/doc/*
EXAMPLE_PATH=..
SOURCE_DEPENDENCIES=../LICENSE-2.0.txt ../classes/*
# SHIP*: mind the trailing slash !!!
SHIPDIR=https://webdav.netlabs.org/developer/rdfint.php/
SHIPSUBDIR=$(SHIPDIR)search/
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# determine os dependent values
ifeq ($(OS), Windows_NT)
CAT=type
CP=copy
RM=del
RMDIR=rd /s /q
NUL=NUL
LAUNCH=cscript /nologo doclaunch.vbs
DATE=$(shell echo %DATE%)
MORE=cmd /c start notepad
else
CAT=cat
CP=cp
RM=rm
RMDIR=rm -rf
NUL=/dev/null
LAUNCH=firefox
DATE=$(shell date +%d.%m.%Y)
MORE=less
endif
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# determine automatic values
# use branch name as version
CURRDIR=$(abspath ..)
CURRDIR_LIST=$(subst /, , ${CURRDIR})
LIBVERSION=$(lastword ${CURRDIR_LIST})
# extrat year from date
DATE_LIST=$(subst ., , ${DATE})
LIBYEAR=$(lastword ${DATE_LIST})
# determine user for shipping
ifeq ($(CURL_USER),)
CURL_USER=$(USERNAME)
endif
ifneq ($(CURL_PASSWORD),)
CURL_USER:=$(CURL_USER):$(CURL_PASSWORD)
endif
CFGFILE=cfg
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# library specific defaults
ifeq ($(OS), Windows_NT)
DOXYGENCFG:=$(TEMP)\doxygen_$(LIBNAME).cfg
SHIPFILES=$(OUTPUTDIR)\html\*
SHIPFILES_SEARCH=$(OUTPUTDIR)\html\search\*
CURLCFG_SHIP_CLEAN:=$(TEMP)\curl_ship_clean_$(LIBNAME).cfg
CURLCFG_SHIP_INIT:=$(TEMP)\curl_ship_init_$(LIBNAME).cfg
CURLCFG_SHIP_UPLOAD:=$(TEMP)\curl_ship_upload_$(LIBNAME).cfg
CURLLOG_SHIP:=$(TEMP)\curl_log_$(LIBNAME).txt
else
DOXYGENCFG:=/tmp/doxygen_$(LIBNAME).cfg
SHIPFILES=$(OUTPUTDIR)/html/*
SHIPFILES_SEARCH=$(OUTPUTDIR)/html/search/*
CURLCFG_SHIP_CLEAN:=/tmp/curl_ship_clean_$(LIBNAME).cfg
CURLCFG_SHIP_INIT:=/tmp/curl_ship_init_$(LIBNAME).cfg
CURLCFG_SHIP_UPLOAD:=/tmp/curl_ship_upload_$(LIBNAME).cfg
CURLLOG_SHIP:=/tmp/curl_log_$(LIBNAME).cfg
endif
OUTPUTFILE=$(OUTPUTDIR)/html/index.html
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# --- phony targets
.PHONY: help all launch ship showcfg clean again curlcfg curllog
help:
@$(CAT) help.txt
all: $(OUTPUTFILE)
launch: all
@$(LAUNCH) $(OUTPUTFILE) &
ship: $(OUTPUTFILE) $(CURLCFG_SHIP_CLEAN) $(CURLCFG_SHIP_INIT) $(CURLCFG_SHIP_UPLOAD)
-@echo Shipping documentation to: $(SHIPDIR)
-@echo cleaning up...
-@curl --config $(CURLCFG_SHIP_CLEAN) >$(CURLLOG_SHIP) 2>&1
-@echo initializing...
-@curl --config $(CURLCFG_SHIP_INIT) >>$(CURLLOG_SHIP) 2>&1
-@echo uploading...
-@curl --config $(CURLCFG_SHIP_UPLOAD) >>$(CURLLOG_SHIP) 2>&1
-@echo done.
showcfg: $(DOXYGENCFG)
@echo $(DOXYGENCFG)
@echo -------------------------------------------------------
@$(CAT) $(DOXYGENCFG)
clean:
@echo cleaning up
-@$(RM) $(DOXYGENCFG) $(CURLCFG_SHIP_CLEAN) $(CURLCFG_SHIP_INIT) $(CURLCFG_SHIP_UPLOAD) $(CURLLOG_SHIP) 2>$(NUL)
-@$(RMDIR) $(OUTPUTDIR) 2>$(NUL)
again: clean all
curlcfg: $(CURLCFG_SHIP_CLEAN) $(CURLCFG_SHIP_INIT) $(CURLCFG_SHIP_UPLOAD)
@$(MORE) $(CURLCFG_SHIP_CLEAN)
@$(MORE) $(CURLCFG_SHIP_INIT)
@$(MORE) $(CURLCFG_SHIP_UPLOAD)
curllog:
@$(MORE) $(CURLLOG_SHIP)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# --- generate HTML help with doxygen
$(OUTPUTFILE): $(DOXYGENCFG) $(SOURCE_DEPENDENCIES) makefile
@doxygen $(DOXYGENCFG) >$(NUL)
# --- generate doxygen configuration file
$(DOXYGENCFG): makefile
@echo PROJECT_NAME=$(LIBNAME)> $(DOXYGENCFG)
@echo OUTPUT_DIRECTORY=$(OUTPUTDIR)>> $(DOXYGENCFG)
@echo FULL_PATH_NAMES=NO>> $(DOXYGENCFG)
@echo INPUT=$(LIBROOT)>> $(DOXYGENCFG)
@echo FILE_PATTERNS=$(SOURCEFILES)>> $(DOXYGENCFG)
@echo RECURSIVE=YES>> $(DOXYGENCFG)
@echo EXCLUDE_PATTERNS=$(SOURCEFILES_EXCLUDE)>> $(DOXYGENCFG)
@echo GENERATE_HTML=YES>> $(DOXYGENCFG)
@echo GENERATE_LATEX=no>> $(DOXYGENCFG)
@echo SORT_MEMBER_DOCS=no>> $(DOXYGENCFG)
@echo EXAMPLE_PATH=$(EXAMPLE_PATH)>> $(DOXYGENCFG)
@echo HTML_HEADER=custom_header.html>> $(DOXYGENCFG)
@echo HTML_FOOTER=custom_footer.html>> $(DOXYGENCFG)
@echo HTML_STYLESHEET=custom_doxygen.css>> $(DOXYGENCFG)
ifeq ($(OS), Windows_NT)
@echo ALIASES+=libname="\c $(LIBNAME)">> $(DOXYGENCFG)
@echo ALIASES+=libname_lit="$(LIBNAME)">> $(DOXYGENCFG)
@echo ALIASES+=libdescription="$(LIBDESCRIPTION)">> $(DOXYGENCFG)
@echo ALIASES+=libversion="$(LIBVERSION)">> $(DOXYGENCFG)
@echo ALIASES+=libyear="$(LIBYEAR)">> $(DOXYGENCFG)
@echo ALIASES+=htmllink{1}="\1">> $(DOXYGENCFG)
@echo ALIASES+=htmllink{2}="\2">> $(DOXYGENCFG)
@echo ALIASES+=htmllinkext{1}="\1">> $(DOXYGENCFG)
@echo ALIASES+=htmllinkext{2}="\2">> $(DOXYGENCFG)
@echo ALIASES+=desctable="
">> $(DOXYGENCFG)
@echo ALIASES+=desc{2}="\1 | \2 |
">> $(DOXYGENCFG)
@echo ALIASES+=enddesctable="
">> $(DOXYGENCFG)
else
@echo ALIASES+=libname=\""\\\\c $(LIBNAME)\"">> $(DOXYGENCFG)
@echo ALIASES+=libname_lit="$(LIBNAME)">> $(DOXYGENCFG)
@echo ALIASES+=libdescription=\"$(LIBDESCRIPTION)\">> $(DOXYGENCFG)
@echo ALIASES+=libversion=\"$(LIBVERSION)\">> $(DOXYGENCFG)
@echo ALIASES+=libyear=\"$(LIBYEAR)\">> $(DOXYGENCFG)
@echo ALIASES+=htmllink{1}=\""\\\\1\"">> $(DOXYGENCFG)
@echo ALIASES+=htmllink{2}=\""\\\\2\"">> $(DOXYGENCFG)
@echo ALIASES+=htmllinkext{1}=\""\\\\1\"">> $(DOXYGENCFG)
@echo ALIASES+=htmllinkext{2}=\""\\\\2\"">> $(DOXYGENCFG)
@echo ALIASES+=desctable=\""\"">> $(DOXYGENCFG)
@echo ALIASES+=desc{2}=\""\\\\1 | \\\\2 |
\"">> $(DOXYGENCFG)
@echo ALIASES+=enddesctable=\""
\"">> $(DOXYGENCFG)
endif
# --- generate curl configuration file with DELETE request
# remove directories with files
$(CURLCFG_SHIP_CLEAN): makefile
@echo fail>$(CURLCFG_SHIP_CLEAN)
@echo insecure>>$(CURLCFG_SHIP_CLEAN)
@echo user=$(CURL_USER)>>$(CURLCFG_SHIP_CLEAN)
@echo silent>>$(CURLCFG_SHIP_CLEAN)
@echo verbose>>$(CURLCFG_SHIP_CLEAN)
@echo request=DELETE>>$(CURLCFG_SHIP_CLEAN)
@echo url=$(SHIPSUBDIR)>>$(CURLCFG_SHIP_CLEAN)
@echo url=$(SHIPDIR)>>$(CURLCFG_SHIP_CLEAN)
# --- generate curl configuration file with MKCOL request
# create directories
$(CURLCFG_SHIP_INIT): makefile
@echo fail>$(CURLCFG_SHIP_INIT)
@echo insecure>>$(CURLCFG_SHIP_INIT)
@echo user=$(CURL_USER)>>$(CURLCFG_SHIP_INIT)
@echo silent>>$(CURLCFG_SHIP_INIT)
@echo verbose>>$(CURLCFG_SHIP_INIT)
@echo request=MKCOL>>$(CURLCFG_SHIP_INIT)
@echo url=$(SHIPDIR)>>$(CURLCFG_SHIP_INIT)
@echo url=$(SHIPSUBDIR)>>$(CURLCFG_SHIP_INIT)
# --- generate curl configuration file with upload request
# upload files
$(CURLCFG_SHIP_UPLOAD): makefile
@echo fail>$(CURLCFG_SHIP_UPLOAD)
@echo insecure>>$(CURLCFG_SHIP_UPLOAD)
@echo user=$(CURL_USER)>>$(CURLCFG_SHIP_UPLOAD)
@echo silent>>$(CURLCFG_SHIP_UPLOAD)
@echo verbose>>$(CURLCFG_SHIP_UPLOAD)
ifeq ($(OS), Windows_NT)
-@for %%f in ($(SHIPFILES)) do (echo url=$(SHIPDIR) >>$(CURLCFG_SHIP_UPLOAD) & echo upload=%%f >>$(CURLCFG_SHIP_UPLOAD))
-@for %%f in ($(SHIPFILES_SEARCH)) do (echo url=$(SHIPSUBDIR) >>$(CURLCFG_SHIP_UPLOAD) & echo upload=%%f >>$(CURLCFG_SHIP_UPLOAD))
else
-@echo $(SHIPFILES)
-@for f in $(SHIPFILES); do echo url=$(SHIPDIR) >>$(CURLCFG_SHIP_UPLOAD); echo upload=$$f >>$(CURLCFG_SHIP_UPLOAD); done
-@for f in $(SHIPFILES_SEARCH); do echo url=$(SHIPSUBDIR) >>$(CURLCFG_SHIP_UPLOAD); echo upload=$$f >>$(CURLCFG_SHIP_UPLOAD); done
endif