##
##	PEG-PIC Makefile 
##
##  Very important: If you change the name of the code
##                  it showld consist of four letters!!!
##                  Or you have to modify the innam() routine in peg_pic.c
##
EXEC=	peg_pic
CC=gcc
CFLAGS=  -g -Wall
## set to yes, if you want to compile PEG-PIC with xgrafix
WITH_XGRAFIX = yes
## set this to yes, to compile with openMP
WITH_OPENMP = no
## set this to yes, to use MT19937 random generator
WITH_MT_RANDOM_GENERATOR = yes
## set this to yes, to make reflected particles their own species
WITH_OWN_SPECIES_REFLECTED = yes


LIBS=  -lm

OBJS=	fft.o mcc.o bincc.o peg_pic.o displ.o readgen.o start.o inname.o\
		checkpar.o paramgen.o paramsp.o paramcc.o paramsrf.o paramcnc.o\
		allocsp.o allocspDF.o readsp.o inload.o incirq.o mfree.o\
		prest.o histfft.o taver.o taver1.o thist.o freq.o pflmv.o\
		prof.o psolver.o mover.o padjus.o walldiagn.o psource.o sphys.o\
		seec.o secinj.o colcrsec.o neutrals.o elastic.o\
		excitation.o ionization.o cx.o vscat.o effion.o\
		dmprest.o distfunc.o fdist.o somef.o movie.o tools.o
XGRAFIXOBJECTS=


# for local compiling on openSUSE Linux
ifeq ($(CC),gcc)
	CFLAGS =  -g -pg -Wall -D GCC

	ifeq ($(WITH_OPENMP),yes)
		CFLAGS += -D WITH_OPENMP -fopenmp
	endif

endif

# for compiling on cluster in Innsbruck
ifeq ($(CC),icc)
	CFLAGS =  -g -Wall -D INTEL_CC

	ifeq ($(WITH_OPENMP),yes)
		CFLAGS += -D WITH_OPENMP -openmp -openmp-lib compat -openmp-link=dynamic
	endif

endif


# if we have to compile with Xgrafix, define few variables....
ifeq ($(WITH_XGRAFIX),yes)
	CFLAGS += -D WITH_XGRAFIX
	OBJS += initwin.o
	XGRAFIXOBJECTS=	 xgrafix/xgrafix.o
	LIBS += -L/usr/X11R6/lib -lX11
else
	CFLAGS += -D SUN
endif

ifeq ($(WITH_MT_RANDOM_GENERATOR),yes)
	# we compile with MT random number generator
	CFLAGS += -D WITH_MT_RANDOM_GENERATOR
endif

ifeq ($(WITH_OWN_SPECIES_REFLECTED),yes)
	# we compile with MT random number generator
	CFLAGS += -D REFLECTED_OWN_SPECIES
endif

##
##
$(EXEC):	$(OBJS) $(XGRAFIXOBJECTS) 
		$(CC) $(CFLAGS) -o $(EXEC) $(OBJS) $(XGRAFIXOBJECTS) $(LIBS)

all:    $(OBJS) $(EXEC) tools

.c.o:   peg_pic.h
	$(CC) -c $(CFLAGS) $*.c


$(XGRAFIXOBJECTS): 
	$(CC) -c $(CFLAGS) xgrafix/xgrafix.c -o $(XGRAFIXOBJECTS)

.PHONY : tools
tools: 
	make -C tools
	


##
clean:
	rm -fr *~
	rm *.o 

