mirror of
https://github.com/libquantum/libquantum.git
synced 2025-10-03 16:51:37 +00:00
190 lines
5.5 KiB
Makefile
190 lines
5.5 KiB
Makefile
# Makefile: Build libquantum
|
|
#
|
|
# Copyright 2003-2005 Bjoern Butscher, Hendrik Weimer
|
|
#
|
|
# This file is part of libquantum
|
|
#
|
|
# libquantum is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published
|
|
# by the Free Software Foundation; either version 3 of the License,
|
|
# or (at your option) any later version.
|
|
#
|
|
# libquantum is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with libquantum; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
# MA 02110-1301, USA
|
|
|
|
# Every Makefile should contain this line
|
|
|
|
SHELL=/bin/sh
|
|
|
|
# Target directory prefix
|
|
|
|
PREFIX=$(DESTDIR)@prefix@
|
|
EPREFIX=$(PREFIX)
|
|
|
|
# Other directories
|
|
|
|
LIBDIR=$(EPREFIX)/lib
|
|
INCLUDEDIR=$(PREFIX)/include
|
|
BINDIR=$(PREFIX)/bin
|
|
top_builddir=.
|
|
ALLDIRS=$(LIBDIR) $(INCLUDEDIR) $(BINDIR)
|
|
|
|
# Version information
|
|
|
|
VERSION=@PACKAGE_VERSION@
|
|
|
|
# Tools needed to build libquantum
|
|
|
|
CC=@CC@
|
|
INSTALL=@INSTALL@
|
|
LIBTOOL=@LIBTOOL@
|
|
|
|
# Flags passed to C compiler
|
|
|
|
CFLAGS=@CFLAGS@
|
|
LDFLAGS=-rpath $(LIBDIR) -version-info 6:1:3
|
|
|
|
# Dependencies
|
|
|
|
all: libquantum.la
|
|
|
|
libquantum.la: complex.lo measure.lo matrix.lo gates.lo qft.lo classic.lo \
|
|
qureg.lo decoherence.lo oaddn.lo omuln.lo expn.lo qec.lo version.lo \
|
|
objcode.lo density.lo error.lo qtime.lo Makefile
|
|
$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o libquantum.la complex.lo \
|
|
measure.lo matrix.lo gates.lo oaddn.lo omuln.lo expn.lo qft.lo \
|
|
classic.lo qureg.lo decoherence.lo qec.lo version.lo objcode.lo \
|
|
density.lo error.lo qtime.lo -lm
|
|
|
|
complex.lo: complex.c complex.h config.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c complex.c
|
|
|
|
measure.lo: measure.c measure.h matrix.h qureg.h complex.h config.h error.h \
|
|
Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c measure.c
|
|
|
|
matrix.lo: matrix.c matrix.h complex.h error.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c matrix.c
|
|
|
|
gates.lo: gates.c gates.h matrix.h defs.h qureg.h error.h decoherence.h \
|
|
objcode.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c gates.c
|
|
|
|
oaddn.lo: oaddn.c matrix.h defs.h gates.h qureg.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c oaddn.c
|
|
|
|
omuln.lo: omuln.c matrix.h gates.h oaddn.h defs.h qureg.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c omuln.c
|
|
|
|
expn.lo: expn.c expn.h matrix.h gates.h oaddn.h omuln.h qureg.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c expn.c
|
|
|
|
qft.lo: qft.c qft.h matrix.h gates.h qureg.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c qft.c
|
|
|
|
classic.lo: classic.c classic.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c classic.c
|
|
|
|
qureg.lo: qureg.c qureg.h matrix.h config.h complex.h error.h objcode.h \
|
|
Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c qureg.c
|
|
|
|
decoherence.lo: decoherence.c decoherence.h measure.h gates.h qureg.h \
|
|
complex.h config.h error.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c decoherence.c
|
|
|
|
qec.lo: qec.c qec.h gates.h qureg.h decoherence.h measure.h config.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c qec.c
|
|
|
|
version.lo: version.c version.h config.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c version.c
|
|
|
|
objcode.lo: objcode.c objcode.h matrix.h gates.h qureg.h measure.h config.h \
|
|
error.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c objcode.c
|
|
|
|
density.lo: density.c density.h matrix.h qureg.h complex.h config.h error.h \
|
|
Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c density.c
|
|
|
|
error.lo: error.c error.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c error.c
|
|
|
|
qtime.lo: qtime.c qtime.h qureg.h Makefile
|
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c qtime.c
|
|
|
|
# Autoconf stuff
|
|
|
|
Makefile: config.status Makefile.in aclocal.m4 config.h.in types.h.in \
|
|
quantum.h.in
|
|
./config.status
|
|
|
|
config.h: config.h.in
|
|
./config.status
|
|
|
|
configure: configure.in
|
|
autoconf
|
|
|
|
config.status: configure
|
|
./config.status --recheck
|
|
|
|
# Build demos of Shor's and Grover's algorithms
|
|
|
|
demos: shor grover
|
|
|
|
shor: libquantum.la shor.c Makefile
|
|
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o shor shor.c -I./ -lquantum \
|
|
-static -lm
|
|
|
|
grover: libquantum.la grover.c Makefile
|
|
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o grover grover.c -I./ \
|
|
-lquantum -static -lm
|
|
|
|
# Quantum object code tools
|
|
|
|
quobtools: quobprint quobdump
|
|
|
|
quobprint: libquantum.la quobprint.c objcode.h Makefile
|
|
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o quobprint quobprint.c \
|
|
-lquantum
|
|
|
|
quobdump: libquantum.la quobdump.c objcode.h Makefile
|
|
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) -o quobdump quobdump.c -lquantum
|
|
|
|
# Bring this savage back home
|
|
|
|
install: libquantum.la
|
|
$(INSTALL) -d $(ALLDIRS)
|
|
$(LIBTOOL) --mode=install $(INSTALL) -m 0644 libquantum.la $(LIBDIR)
|
|
$(INSTALL) -m 0644 quantum.h $(INCLUDEDIR)
|
|
|
|
quobtools_install: quobtools
|
|
$(LIBTOOL) --mode=install $(INSTALL) -m 0755 quobprint $(BINDIR)
|
|
$(LIBTOOL) --mode=install $(INSTALL) -m 0755 quobdump $(BINDIR)
|
|
|
|
# Make everything neat and tidy
|
|
|
|
clean:
|
|
-rm -rf .libs
|
|
-rm shor grover quobprint quobdump libquantum.la *.lo *.o
|
|
|
|
distclean: clean
|
|
-rm config.h quantum.h types.h config.status config.log
|
|
|
|
# Build the source tarball
|
|
|
|
dist:
|
|
-rm quantum.h config.h types.h
|
|
mkdir libquantum-$(VERSION)
|
|
cp *.c *.h *.in configure COPYING install-sh ltmain.sh config.sub \
|
|
config.guess aclocal.m4 README INSTALL CHANGES libquantum-$(VERSION)
|
|
tar czf libquantum-$(VERSION).tar.gz libquantum-$(VERSION)/
|
|
rm -rf libquantum-$(VERSION)
|