Skip to content

Commit

Permalink
build: adds an Autotools-based build system to DYAD
Browse files Browse the repository at this point in the history
This commit consists of the following changes:
* Adds initial configury files
* Adds the Makefile.am files for the Autotools build setup
* Add libtool initialization to configure.ac
* Tweaks a few things for Automake and Autoconf to improve the build
* Adds -module to the linker flags for dyad.so so that Automake doesn't
  require a 'lib' prefix to the so name
* Adds 'dyadrun', a script meant to help users with setting the
  environment variables needed to run DYAD
* Adds a .gitignore file to the repo
* Adds 'autogen.sh' from flux-core to help with
  building DYAD
* Adds debug support and removes CPA from the build
* Tweaks the configury to be more consistent with other Flux repos
* Adds URPC, but currently does not add libb64 linking
  • Loading branch information
ilumsden committed Aug 2, 2022
1 parent 97a3081 commit 0e6fd83
Show file tree
Hide file tree
Showing 21 changed files with 1,761 additions and 0 deletions.
103 changes: 103 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Mostly copied from the Flux-Core gitignore:
# https://github.com/flux-framework/flux-core/blob/master/.gitignore

# http://www.gnu.org/software/automake
Makefile.in
# http://www.gnu.org/software/autoconf
autom4te.cache
compile
configure
aclocal.m4
stamp-h1
aclocal.m4
config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing
config.log
config.status
config.h
config.h.in
config.h.in~
libtool
.deps/
.libs/
libltdl/

# generated library version header
/src/common/libflux/version.h

# libtool pull-ins
/config/libtool.m4
/config/ltoptions.m4
/config/ltsugar.m4
/config/ltversion.m4
/config/lt~obsolete.m4

# docs intermediate files
/doc/man*/*.xml
/doc/_build

# Object files
*.o
*.ko
*.obj
*.elf
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
*.pyc
*.pyo
# gcov output
*.gcno
*.gcda

# autoconf-preprocessed
Makefile
*.1
*.3
*.5
*.7
*.8
*.spec
*.pc

# misc
*.swp
*.diff
*.tar.gz
*.orig
*.core
*.tap
.coverage*
*.trs
*.log
.dirstamp

# ignore local, maybe generated tooling files
compile_commands.json
compile_flags.txt

# local editor config dirs
.vscode
.idea
.clangd

# ignore installable version of dyadrun
dyadrun
15 changes: 15 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
ACLOCAL_AMFLAGS = -I config

SUBDIRS = . src

dist_bin_SCRIPTS = dyadrun

dyadrun:
$(SED) -e 's,[@]libdir[@],$(DESTDIR)$(libdir),' dyadrun.in > $@\
&& chmod u+x $@

clean-local:
rm -f dyadrun

uninstall-local:
rm -f $(DESTDIR)$(bindir)/dyadrun
11 changes: 11 additions & 0 deletions autogen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh
#
# Run an extra libtoolize before autoreconf to ensure that
# libtool macros can be found if libtool is in PATH, but its
# macros are not in default aclocal search path.
#
echo "Running libtoolize --automake --copy ... "
libtoolize --automake --copy || exit
echo "Running autoreconf --force --verbose --install"
autoreconf --force --verbose --install || exit
echo "Now run ./configure."
Loading

0 comments on commit 0e6fd83

Please sign in to comment.