add makefiles for building 32-bit executables on 64-bit x86 Linux

This commit is contained in:
Axel Kohlmeyer
2013-06-01 18:34:50 +02:00
parent ae439884d4
commit 5da358bf54
7 changed files with 399 additions and 0 deletions

103
lib/colvars/Makefile.32-bit Normal file
View File

@ -0,0 +1,103 @@
# library build -*- makefile -*- for colvars module
# ------ SETTINGS ------
CXX = g++ -m32
CXXFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-fno-rtti -fno-exceptions -finline-functions \
-ffast-math -funroll-loops -fstrict-aliasing \
-Wall -W -Wno-uninitialized
ARCHIVE = ar
ARCHFLAG = -rscv
SHELL = /bin/sh
# ------ DEFINITIONS ------
SRC = colvaratoms.cpp colvarbias_abf.cpp colvarbias.cpp colvarbias_meta.cpp \
colvar.cpp colvarcomp_angles.cpp colvarcomp.cpp colvarcomp_coordnums.cpp \
colvarcomp_distances.cpp colvarcomp_protein.cpp colvarcomp_rotations.cpp \
colvargrid.cpp colvarmodule.cpp colvarparse.cpp colvarvalue.cpp
DIR = Obj_32-bit/
LIB = $(DIR)libcolvars.a
OBJ = $(SRC:%.cpp=$(DIR)%.o)
EXE = #colvars_standalone
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB) $(EXE)
$(DIR):
mkdir $(DIR)
$(LIB): $(DIR) $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
$(DIR)colvars_standalone: colvars_main.o colvarproxy_standalone.o $(LIB)
$(CXX) -o $@ $(CXXFLAGS) $^
# ------ MAKE FLAGS ------
.SUFFIXES:
.SUFFIXES: .cpp .o
.PHONY: default clean
# ------ COMPILE RULES ------
$(DIR)%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
# ------ DEPENDENCIES ------
#
$(DIR)colvars_main.o: colvars_main.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarproxy_standalone.h colvaratoms.h colvarparse.h colvarvalue.h
$(DIR)colvarproxy_standalone.o: colvarproxy_standalone.cpp colvarmodule.h \
colvartypes.h colvarproxy.h colvaratoms.h colvarparse.h colvarvalue.h \
colvarproxy_standalone.h
$(DIR)colvaratoms.o: colvaratoms.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarparse.h colvarvalue.h colvaratoms.h
$(DIR)colvarbias_abf.o: colvarbias_abf.cpp colvarmodule.h colvartypes.h \
colvarproxy.h colvar.h colvarvalue.h colvarparse.h colvarbias_abf.h \
colvarbias.h colvargrid.h
$(DIR)colvarbias.o: colvarbias.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h colvarbias.h colvar.h colvarparse.h
$(DIR)colvarbias_meta.o: colvarbias_meta.cpp colvar.h colvarmodule.h \
colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h \
colvarbias_meta.h colvarbias.h colvargrid.h
$(DIR)colvar.o: colvar.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h colvarparse.h colvar.h colvarcomp.h colvaratoms.h
$(DIR)colvarcomp_angles.o: colvarcomp_angles.cpp colvarmodule.h colvartypes.h \
colvarproxy.h colvar.h colvarvalue.h colvarparse.h colvarcomp.h \
colvaratoms.h
$(DIR)colvarcomp.o: colvarcomp.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h colvar.h colvarparse.h colvarcomp.h colvaratoms.h
$(DIR)colvarcomp_coordnums.o: colvarcomp_coordnums.cpp colvarmodule.h \
colvartypes.h colvarproxy.h colvarparse.h colvarvalue.h colvaratoms.h \
colvar.h colvarcomp.h
$(DIR)colvarcomp_distances.o: colvarcomp_distances.cpp colvarmodule.h \
colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvar.h \
colvarcomp.h colvaratoms.h
$(DIR)colvarcomp_protein.o: colvarcomp_protein.cpp colvarmodule.h colvartypes.h \
colvarproxy.h colvarvalue.h colvarparse.h colvar.h colvarcomp.h \
colvaratoms.h
$(DIR)colvarcomp_rotations.o: colvarcomp_rotations.cpp colvarmodule.h \
colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvar.h \
colvarcomp.h colvaratoms.h
$(DIR)colvargrid.o: colvargrid.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h colvarparse.h colvar.h colvarcomp.h colvaratoms.h \
colvargrid.h
$(DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarparse.h colvarvalue.h colvar.h colvarbias.h colvarbias_meta.h \
colvargrid.h colvarbias_abf.h
$(DIR)colvarparse.o: colvarparse.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h colvarparse.h
$(DIR)colvarvalue.o: colvarvalue.cpp colvarmodule.h colvartypes.h colvarproxy.h \
colvarvalue.h
# ------ CLEAN ------
clean:
-rm $(DIR)*.o *~ $(LIB)
-rmdir $(DIR)

View File

66
lib/meam/Makefile.32-bit Normal file
View File

@ -0,0 +1,66 @@
# * -*- makefile -*-
# *_________________________________________________________________________*
# * MEAM: MODEFIED EMBEDDED ATOM METHOD *
# * DESCRIPTION: SEE READ-ME *
# * FILE NAME: Makefile *
# * AUTHORS: Greg Wagner, Sandia National Laboratories *
# * CONTACT: gjwagne@sandia.gov *
# *_________________________________________________________________________*/
# To compile and link LAMMPS to the reax library generated by this Makefile,
# try appending the following definitions to the standard definitions in
# whatever LAMMPS Makefile your are using.
# LINKFLAGS = -L../../lib/meam
# USRLIB = -lmeam -lgfortran
SHELL = /bin/sh
# ------ FILES ------
SRC = meam_data.F meam_setup_done.F meam_setup_global.F meam_setup_param.F meam_dens_init.F meam_dens_final.F meam_force.F meam_cleanup.F
FILES = $(SRC) Makefile
# ------ DEFINITIONS ------
DIR = Obj_32-bit/
LIB = $(DIR)libmeam.a
OBJ = $(SRC:%.F=$(DIR)%.o)
# ------ SETTINGS ------
F90 = gfortran -m32
F90FLAGS = -O3 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-ffast-math -funroll-loops -fstrict-aliasing -J$(DIR) \
-Wall -W -Wno-uninitialized -fno-second-underscore
#F90FLAGS = -O
ARCHIVE = ar
ARCHFLAG = -rcs
LINK = g++
LINKFLAGS = -O
USRLIB =
SYSLIB =
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB)
$(DIR):
-mkdir $(DIR)
$(LIB): $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
# ------ COMPILE RULES ------
$(DIR)%.o:%.F
$(F90) $(F90FLAGS) -c $< -o $@
# ------ CLEAN ------
clean:
-rm $(DIR)*.o $(DIR)*.mod *~ $(LIB)
-rmdir $(DIR)
tar:
-tar -cvf ../MEAM.tar $(FILES)

113
lib/poems/Makefile.32-bit Normal file
View File

@ -0,0 +1,113 @@
# *
# *_________________________________________________________________________*
# * POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
# * DESCRIPTION: SEE READ-ME *
# * FILE NAME: Makefile *
# * AUTHORS: See Author List *
# * GRANTS: See Grants List *
# * COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
# * LICENSE: Please see License Agreement *
# * DOWNLOAD: Free at www.rpi.edu/~anderk5 *
# * ADMINISTRATOR: Prof. Kurt Anderson *
# * Computational Dynamics Lab *
# * Rensselaer Polytechnic Institute *
# * 110 8th St. Troy NY 12180 *
# * CONTACT: anderk5@rpi.edu *
# *_________________________________________________________________________*/
SHELL = /bin/sh
# which file will be copied to Makefile.lammps
EXTRAMAKE = Makefile.lammps.empty
# ------ FILES ------
SRC_MAIN = workspace.cpp system.cpp poemsobject.cpp
INC_MAIN = workspace.h system.h poemsobject.h
SRC_BODY = body.cpp rigidbody.cpp particle.cpp inertialframe.cpp
INC_BODY = bodies.h body.h rigidbody.h particle.h inertialframe.h
SRC_JOINT = joint.cpp revolutejoint.cpp prismaticjoint.cpp sphericaljoint.cpp \
freebodyjoint.cpp body23joint.cpp mixedjoint.cpp
INC_JOINT = joints.h joint.h revolutejoint.h prismaticjoint.h sphericaljoint.h \
freebodyjoint.h body23joint.h mixedjoint.h
SRC_POINT = point.cpp fixedpoint.cpp
INC_POINT = points.h point.h fixedpoint.h
SRC_SOLVE = solver.cpp
INC_SOLVE = solver.h
SRC_ORDERN = onsolver.cpp onfunctions.cpp onbody.cpp
INC_ORDERN = onsolver.h onfunctions.h onbody.h
SRC_MAT = virtualmatrix.cpp matrix.cpp matrixfun.cpp mat3x3.cpp virtualcolmatrix.cpp \
colmatrix.cpp vect3.cpp virtualrowmatrix.cpp rowmatrix.cpp mat6x6.cpp vect6.cpp \
fastmatrixops.cpp colmatmap.cpp eulerparameters.cpp vect4.cpp norm.cpp mat4x4.cpp \
INC_MAT = matrices.h virtualmatrix.h matrix.h matrixfun.h mat3x3.h virtualcolmatrix.h \
colmatrix.h vect3.h virtualrowmatrix.h rowmatrix.h mat6x6.h vect6.h \
fastmatrixops.h colmatmap.h eulerparameters.h vect4.h norm.h mat4x4.h
SRC_MISC = poemstreenode.cpp
INC_MISC = poemslist.h poemstreenode.h poemstree.h poemsnodelib.h SystemProcessor.h defines.h POEMSChain.h
SRC = $(SRC_MAIN) $(SRC_BODY) $(SRC_JOINT) $(SRC_POINT) $(SRC_SOLVE) $(SRC_ORDERN) $(SRC_MAT) $(SRC_MISC)
INC = $(INC_MAIN) $(INC_BODY) $(INC_JOINT) $(INC_POINT) $(INC_SOLVE) $(INC_ORDERN) $(INC_MAT) $(INC_MISC)
FILES = $(SRC) $(INC) Makefile Authors_List.txt Grants_List.txt POEMS_License.txt README Copyright_Notice
# ------ DEFINITIONS ------
DIR = Obj_32-bit/
LIB = $(DIR)libpoems.a
OBJ = $(SRC:%.cpp=$(DIR)%.o)
# ------ SETTINGS ------
CC = g++ -m32
CCFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-ffast-math -funroll-loops -finline-functions -fno-rtti \
-fno-exceptions -fstrict-aliasing \
-Wall -W -Wno-uninitialized
ARCHIVE = ar
ARCHFLAG = -rcs
DEPFLAGS = -M
LINK = g++ -m32
LINKFLAGS = -O
USRLIB =
SYSLIB =
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB)
$(DIR):
-mkdir $(DIR)
$(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)
tar:
-tar -cvf ../POEMS.tar $(FILES)

View File

@ -0,0 +1,5 @@
# Settings that the LAMMPS build will import when this package library is used
poems_SYSINC =
poems_SYSLIB =
poems_SYSPATH =

View File

@ -0,0 +1,72 @@
# library build -*- makefile -*- for voro++ library
# ------ SETTINGS ------
CXX = g++ -m32
CXXFLAGS = -O2 -march=i686 -mtune=generic -mfpmath=387 -mpc64 \
-fno-rtti -fno-exceptions -finline-functions \
-ffast-math -funroll-loops -fstrict-aliasing \
-Wall -W -Wno-uninitialized
ARCHIVE = ar
ARCHFLAG = -rscv
SHELL = /bin/sh
# ------ DEFINITIONS ------
SRC = src/cell.cc src/c_loops.cc src/common.cc src/container.cc \
src/container_prd.cc src/pre_container.cc src/unitcell.cc \
src/v_base.cc src/v_compute.cc src/wall.cc
DIR = Obj_32-bit/
LIB = $(DIR)libvoronoi.a
OBJ = $(SRC:src/%.cc=$(DIR)%.o)
# ------ MAKE PROCEDURE ------
default: $(DIR) $(LIB) $(EXE)
$(DIR):
mkdir $(DIR)
$(LIB): $(DIR) $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ)
# ------ CLEAN ------
clean:
-rm $(DIR)*.o *~ $(LIB)
-rmdir $(DIR)
# ------ MAKE FLAGS ------
.SUFFIXES:
.SUFFIXES: .cc .o
.PHONY: default clean
# ------ COMPILE RULES ------
$(DIR)%.o: src/%.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
# ------ DEPENDENCIES ------
$(DIR)cell.o: src/cell.cc src/config.hh src/common.hh src/cell.hh
$(DIR)c_loops.o: src/c_loops.cc src/c_loops.hh src/config.hh
$(DIR)common.o: src/common.cc src/common.hh src/config.hh
$(DIR)container.o: src/container.cc src/container.hh src/config.hh \
src/common.hh src/v_base.hh src/worklist.hh src/cell.hh src/c_loops.hh \
src/v_compute.hh src/rad_option.hh
$(DIR)container_prd.o: src/container_prd.cc src/container_prd.hh src/config.hh \
src/common.hh src/v_base.hh src/worklist.hh src/cell.hh src/c_loops.hh \
src/v_compute.hh src/unitcell.hh src/rad_option.hh
$(DIR)pre_container.o: src/pre_container.cc src/config.hh src/pre_container.hh \
src/c_loops.hh src/container.hh src/common.hh src/v_base.hh \
src/worklist.hh src/cell.hh src/v_compute.hh src/rad_option.hh
$(DIR)unitcell.o: src/unitcell.cc src/unitcell.hh src/config.hh src/cell.hh \
src/common.hh
$(DIR)v_base.o: src/v_base.cc src/v_base.hh src/worklist.hh src/config.hh \
src/v_base_wl.cc
$(DIR)wall.o: src/wall.cc src/wall.hh src/cell.hh src/config.hh src/common.hh \
src/container.hh src/v_base.hh src/worklist.hh src/c_loops.hh \
src/v_compute.hh src/rad_option.hh

40
src/STUBS/Makefile.32-bit Normal file
View File

@ -0,0 +1,40 @@
# Makefile for MPI stubs - edit this for your platform
SHELL = /bin/sh
.IGNORE:
# Files
SRC = mpi.c
INC = mpi.h
# Definitions
EXE = libmpi_32-bit.a
OBJ = $(SRC:%.c=%_32-bit.o)
# System-specific settings
CC = gcc -m32
CCFLAGS = -O2 -Wall -march=i686 -mtune=generic -mfpmath=387 -mpc64
ARCHIVE = ar
ARCHFLAG = rs
# Target
$(EXE): $(OBJ)
$(ARCHIVE) $(ARCHFLAG) $(EXE) $(OBJ)
# Clean
clean:
rm *.o libmpi.a $(EXE) $(OBJ)
# Compilation rules
%_32-bit.o: %.c
$(CC) $(CCFLAGS) -c $< -o $@
# Individual dependencies
$(OBJ): $(INC)