# library build -*- makefile -*-
SHELL = /bin/sh

# ------ FILES ------
SRC = $(wildcard *.cpp)
INC = $(wildcard *.h)

# ------ DEFINITIONS ------
# which file will be copied to Makefile.lammps

EXTRAMAKE = Makefile.lammps.linalg

DIR = Obj_mingw64/
LIB = $(DIR)libatc.a
OBJ = $(SRC:%.cpp=$(DIR)%.o)

# ------ SETTINGS ------

# include any MPI settings needed for the ATC library to build with
# the same MPI library that LAMMPS is built with

CC =		  x86_64-w64-mingw32-g++
CCFLAGS =	-I../../src -I../../src/STUBS -DMPICH_IGNORE_CXX_SEEK	\
		-O3 -march=core2 -mtune=core2 -mpc64 -msse2    \
                -ffast-math -funroll-loops -fstrict-aliasing		\
		-DLAMMPS_SMALLBIG -Wno-uninitialized
ARCHIVE =	x86_64-w64-mingw32-ar
ARCHFLAG =	-rcs
DEPFLAGS =      -M
LINK =         	x86_64-w64-mingw32-g++
LINKFLAGS =	-O
USRLIB =
SYSLIB =

# ------ MAKE PROCEDURE ------

default: $(DIR) $(LIB) Makefile.lammps

$(DIR):
	mkdir $(DIR)

Makefile.lammps:
	@cp $(EXTRAMAKE) Makefile.lammps

$(LIB): 	$(OBJ)
	$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
	@cp $(EXTRAMAKE) Makefile.lammps

# ------ COMPILE RULES ------

$(DIR)%.o:%.cpp
	$(CC) $(CCFLAGS) -c $< -o $@
$(DIR)%.d:%.cpp
	$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@		

# ------ DEPENDENCIES ------

DEPENDS = $(OBJ:.o=.d)

# ------ CLEAN ------

clean:
	rm $(DIR)*.o $(DIR)*.d *~ $(LIB)

$(DEPENDS) : $(DIR)
sinclude $(DEPENDS)
