File: gnu.mak

package info (click to toggle)
objcryst-fox 2022.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 7,040 kB
  • sloc: cpp: 70,656; xml: 43,909; ansic: 467; python: 170; makefile: 21; sh: 12
file content (74 lines) | stat: -rw-r--r-- 3,164 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
BUILD_DIR=$(CURDIR)/..
include rules-gnu.mak

######################################################################
#####################      LIBRAIRIES         ########################
######################################################################

#All defined in rules.mak

######################################################################
#####################        PROGRAMS         ########################
######################################################################

#test-cristallo
test:
	  cd ${DIR_TEST} && make all

######################################################################
#####################      OTHER TARGETS      ########################
######################################################################

ctags:
	$(MAKE) -f gnu.mak -C ${DIR_DOC} ctags


# target for making both libraries

.PHONY : all
all: libcryst test doc

# target for removing all object files (does not affect blitz/newmat/sglite/atominfo)
.PHONY : tidy
tidy::
	$(MAKE) -f gnu.mak -C ${DIR_LIBCRYST} tidy
	$(MAKE) -f gnu.mak -C ${DIR_CRYSTVECTOR} tidy
	$(MAKE) -f gnu.mak -C ${DIR_VFNQUIRKS} tidy
	$(MAKE) -f gnu.mak -C ${DIR_REFOBJ} tidy
	$(MAKE) -f gnu.mak -C ${DIR_WXWCRYST} tidy
	$(MAKE) -f gnu.mak -C ${DIR_EXAMPLE} tidy

# target for removing all object files and libraries
# (does not affect blitz/newmat/sglite/atominfo)
.PHONY : clean
clean::
	$(MAKE) -f gnu.mak -C ${DIR_LIBCRYST} clean
	$(MAKE) -f gnu.mak -C ${DIR_CRYSTVECTOR} clean
	$(MAKE) -f gnu.mak -C ${DIR_VFNQUIRKS} clean
	$(MAKE) -f gnu.mak -C ${DIR_REFOBJ} clean
	$(MAKE) -f gnu.mak -C ${DIR_WXWCRYST} clean
	$(MAKE) -f gnu.mak -C ${DIR_EXAMPLE} clean

# Build *shared* library - the "shared_libcryst=1" option is mandatory
lib:libnewmat libcctbx libCrystVector libQuirks libRefinableObj libCryst
	gcc -shared -Wl,-soname,libObjCryst.so.1 -lnewmat -lcctbx -o libObjCryst.so.1.0.0 */*.o

#target to make documentation (requires doxygen)
#also makes tags file, although it is not related to doxygen
doc:
	cd ${DIR_DOC}; $(MAKE) -f gnu.mak doc

#target to make distribution archive of libcryst++
dist:
	tar -czf ../archives/ObjCryst.tar.gz  -C .. --exclude='*.o' --exclude='.systemG.Desktop' --exclude='profile.0.0.0' --exclude='*.a' --exclude='*.pov' --exclude='latex' --exclude='*.exe' --exclude='*.out' --exclude='tags' --exclude='wxCryst/Fox' --exclude='Makefile' ObjCryst --dereference

#these are libraries/programs used by ObjCryst but developped by other people.
#These are needed to use ObjCryst, but not modified-so only get it once.
#
# ObjCryst/blitz
dist-libs:
	tar -czf ../archives/ObjCryst-libs.tar.gz  -C .. --exclude='*.o' --exclude='.systemG.Desktop'  --exclude='*.a' --exclude='*.exe' cctbx newmat --exclude='Makefile' --dereference

#target to make a complete archive of ObjCryst++
archive:
	tar -czf ../archives/ObjCryst-complete.tar.gz  -C .. --exclude='*.o' --exclude='.systemG.Desktop' --exclude='*.a' --exclude='*.exe' --exclude='*.out' --exclude='CVS' --exclude='ObjCryst/doc/html' --exclude='ObjCryst/doc/latex' --exclude='*.oxy' --exclude='profile.0.0.0' --exclude='Makefile' cctbx newmat AsymProfLarryFinger ObjCryst --dereference