CCFLAGS = -fPIC -pipe -Wall -g 
CFLAGS = $(GTK_CFLAGS) $(SOUP_CFLAGS) -I.
CC = gcc $(ARCHOPTS) -g
CCSLOW = gcc -O0 -g

# ----------------------------------------------------------------------------

OBJECTS = hardinfo.o shell.o util.o iconcache.o loadgraph.o  \
		menu.o stock.o callbacks.o expr.o report.o binreloc.o \
		vendor.o socket.o syncmanager.o remote.o xmlrpc-server.o \
		xmlrpc-client.o ssh-conn.o egg-markdown.o markdown-text-view.o \
		help-viewer.o
BENCHMARK_OBJECTS = fbench.o sha1.o blowfish.o md5.o nqueens.o fftbench.o guibench.o

MODULES = computer.so devices.so benchmark.so network.so

all:	$(OBJECTS) $(MODULES)
	$(CC) $(CCFLAGS) -o hardinfo -Wl,-export-dynamic $(OBJECTS) $(GTK_LIBS) \
		$(SOUP_LIBS)

md5.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c md5.c -o $@

blowfish.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c blowfish.c -o $@

sha1.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c sha1.c -o $@

fbench.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c fbench.c -o $@

fftbench.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c fftbench.c -o $@

nqueens.o:
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -c nqueens.c -o $@

benchmark.so:	benchmark.c
	make $(BENCHMARK_OBJECTS)
	$(CCSLOW) $(CCFLAGS) $(CFLAGS) -o $@ -shared $< $(BENCHMARK_OBJECTS) \
		$(GTK_FLAGS) $(GTK_LIBS)

%.so:	%.c
	$(CC) $(CCFLAGS) $(CFLAGS) -o $@ -shared $< $(GTK_FLAGS) $(GTK_LIBS)
	
clean:
	rm -rf .xvpics pixmaps/.xvpics *.o *.so hardinfo report
	find . -name \*~ -exec rm -v {} \;
	find . -name x86 -type l -exec rm -v {} \;

dist-clean:	clean
	rm -rf Makefile debian/hardinfo/ config.h arch/this

package:	dist-clean
	@echo "Creating tar.gz..."
	cd .. && tar czf $(PACKAGE).tar.gz $(PACKAGE)/* && cd $(PACKAGE)
	@echo "Creating tar.bz2..."
	cd .. && tar cjf $(PACKAGE).tar.bz2 $(PACKAGE)/* && cd $(PACKAGE)

deb:	dist-clean
	@echo "Creating deb..."
	dpkg-buildpackage -rfakeroot -k${USER}

install:	all
	
	rm -rf ${DESTDIR}${LIBDIR}/hardinfo/modules ${DESTDIR}/usr/share/hardinfo/pixmaps

	install -d ${DESTDIR}/usr/bin
	install -d ${DESTDIR}/usr/local
	install -d ${DESTDIR}/usr/share/applications
	install -d ${DESTDIR}${LIBDIR}/hardinfo/modules
	install -d ${DESTDIR}/usr/share/hardinfo/pixmaps
	install -d ${DESTDIR}/usr/share/hardinfo/doc

	install -m 644 hardinfo.desktop ${DESTDIR}/usr/share/applications
	install -m 755 hardinfo ${DESTDIR}/usr/bin/hardinfo
	
	install -m 755 ${MODULES} ${DESTDIR}${LIBDIR}/hardinfo/modules
	install -m 644 pixmaps/* ${DESTDIR}/usr/share/hardinfo/pixmaps
	install -m 644 doc/*.hlp ${DESTDIR}/usr/share/hardinfo/doc || true
	install -m 644 doc/*.png ${DESTDIR}/usr/share/hardinfo/doc || true
	
	install -m 644 benchmark.conf ${DESTDIR}/usr/share/hardinfo
	install -m 644 benchmark.data ${DESTDIR}/usr/share/hardinfo

installer:
	makepackage