99# CC - C compiler.
1010# AR - Archiver.
1111# MAKE - Make tool.
12+ # FORD - FORD documentation generator.
1213# FFLAGS - Fortran compiler flags.
1314# CFLAGS - C compiler flags.
1415# PPFLAGS - Pre-processor flags. Change to `-fpp` for Intel IFORT.
@@ -23,6 +24,7 @@ FC = gfortran
2324CC = gcc
2425AR = ar
2526MAKE = make
27+ FORD = ford
2628
2729DEBUG = -g -O0 -Wall -fmax-errors=1
2830RELEASE = -O2 -march=native
@@ -35,6 +37,7 @@ LDFLAGS = -I$(PREFIX)/include -L$(PREFIX)/lib
3537LDLIBS =
3638INCDIR = $(PREFIX ) /include/libfortran-unix
3739LIBDIR = $(PREFIX ) /lib
40+ DOCDIR = ./doc
3841
3942TARGET = libfortran-unix.a
4043
@@ -55,9 +58,13 @@ OBJ = unix.o unix_dirent.o unix_errno.o unix_fcntl.o \
5558 unix_time.o unix_types.o unix_unistd.o unix_utsname.o \
5659 unix_wait.o unix_macro.o
5760
58- .PHONY : all clean examples freebsd freebsd_examples install linux linux_examples
61+ .PHONY : all clean doc examples install \
62+ freebsd freebsd_doc freebsd_examples \
63+ linux linux_doc linux_examples
5964
60- all : $(TARGET )
65+ all :
66+ @echo " Add build target [freebsd|linux], for example:"
67+ @echo " make linux"
6168
6269# Library
6370$(TARGET ) : $(SRC )
@@ -169,6 +176,17 @@ uname: $(TARGET) examples/uname/uname.f90
169176uptime : $(TARGET ) examples/uptime/uptime.f90
170177 $(FC ) $(FFLAGS ) $(PPFLAGS ) $(LDFLAGS ) -o uptime examples/uptime/uptime.f90 $(TARGET ) $(LDLIBS )
171178
179+ # Documentation
180+ doc : ford.md
181+ $(FORD ) -d ./src ford.md
182+
183+ freebsd_doc : ford.md
184+ $(FORD ) -m " __FreeBSD__" -d ./src ford.md
185+
186+ linux_doc : ford.md
187+ $(FORD ) -m " __linux__" -d ./src ford.md
188+
189+ # Installation.
172190install : $(TARGET )
173191 @echo " --- Installing $( TARGET) to $( LIBDIR) / ..."
174192 install -d $(LIBDIR )
@@ -177,9 +195,11 @@ install: $(TARGET)
177195 install -d $(INCDIR )
178196 install -m 644 unix* .mod $(INCDIR ) /
179197
198+ # Clean-up.
180199clean :
181200 if [ ` ls -1 * .mod 2> /dev/null | wc -l` -gt 0 ]; then rm * .mod; fi
182201 if [ ` ls -1 * .o 2> /dev/null | wc -l` -gt 0 ]; then rm * .o; fi
202+ if [ -e $( DOCDIR) ]; then rm -r $( DOCDIR) ; fi
183203 if [ -e $( TARGET) ]; then rm $( TARGET) ; fi
184204 if [ -e dirent ]; then rm dirent; fi
185205 if [ -e fifo ]; then rm fifo; fi
0 commit comments