いつもお世話になっています<(_ _)>
今回、LinuxでAutomakeを使用したサブディレクトリを含むMakeの件についてお尋ねしたいと思います。
まず、サブディレクトリを含まない、カレントディレクトリのみにソースコードがある場合のMakeは成功しております。
しかし、やはりコードを整理したり何だりとしたいので
サブディレクトリに格納して全体をMakeできないかと2日ほど模索してみたのですが、
未だに解決法が見当たらないため、皆様の力をお借りしたい次第です。はい
えー、まず簡単なファイル構造がこちらです
[hr]
OpenMMD/ │ (unixフォルダ内はapp.cpp app.hだけ) ├ unix/ │ ├ app.cpp │ └ app.h ├ OpenMMD.cpp ├ OpenMMD.h : (ヘッダーとかコードとか)[hr]
そして最終的にこれを一つのライブラリOpenMMD.aとしてまとめ上げたいのですが
いかんせんどのようにMakefile.amなどを配置すればいいのかいまいち理解できません
とりあえず現状の配置は
./Makefile.am
noinst_LIBRARIES = libOpenMMD.a
libOpenMMD_a_SOURCES = OpenMMD.cpp OpenMMD.h appcmn.h config.h define.h include.h static.h unicode.cpp unicode.hpp app.cpp app.h
INCLUDES = -I /usr/local/boost/include/
SUBDIRS = unix
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT(libOpenMMD, 0.0.1, angeart☆angeart.net)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([appcmn.h])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_AWK
AC_PROG_RANLIB
AC_PROG_CPP
AC_PROG_MKDIR_P
# Checks for libraries.
# Checks for header files.
AC_PATH_X
AC_CHECK_HEADERS([stdlib.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
# Checks for library functions.
AC_CONFIG_FILES([Makefile
unix/Makefile])
AC_PROG_RANLIB
AC_OUTPUT
noinst_LIBRARIES = libOpenMMD.a
libOpenMMD_a_SOURCES = app.cpp app.h
INCLUDES = -I /usr/local/boost/include/
SUBDIRS =
一応そのスクリプトの挙動も書いておきます。
[hr]
STEP1 サブディレクトリ列挙 ↓ STEP2 ソースコードがあったらディレクトリに入って autoscanを実行してからMakefile.amを生成する ↓ STEP2繰り返し ↓ STEP3 元のカレントディレクトリに入って autoscan Makefile.am生成 configure.scan→configure.ac変換 autoheader automake -a -c autoconf を行う[hr]
といったものです
よろしくお願いいたします