2011-12-08 3 views
3

OpenGL SuperBible과 함께 제공되는 GLTools 라이브러리를 automake가있는 libtool 라이브러리에 빌드하려고했습니다.Automake Libtool '대상을 만들 규칙 없음'

나는 autoconf를하고 automake를 설정했지만 실제로 라이브러리를 구축 할 때 내가 얻을 :

내 정신이 저를 보자 아무것도 가지고 올 것이다 나는만큼 구글을 검색 한
$ make 
make: *** No rule to make target `GLBatch.lo', needed by `libgltools.la'. Stop. 

, 나는 automake를 처음 사용하기 때문에 무엇을 검색해야하는지 잘 모르겠습니다. 나는 그것이 작은 실수이거나 뭔가 근본적으로 놓친 것 같아. 이 중요한 경우

ACLOCAL_AMFLAGS = -I m4 

lib_LTLIBRARIES = libgltools.la 
libgltools_la_SOURCES = GLBatch.cpp GLShaderManager.cpp GLTriangeBatch.cpp GLTools.cpp math3d.cpp glew.c 
#libgltools_la_CFLAGS = 
libgltools_la_LIBADD = -lX11 -lglut -lGL -lGLU -lm 

include_HEADERS = GLBatchBase.h GLBatch.h GLFrame.h GLFrustum.h GLGeometryTransform.h GLMatrixStack.h GLShaderManager.h GLTools.h GLTriangleBatch.h math3d.h StopWatch.h GL/glew.h GL/glxew.h GL/wglew.h 

EXTRA_DIST = autogen.sh 

그리고 내 configure.ac :

#            -*- Autoconf -*- 
# Process this file with autoconf to produce a configure script. 

AC_PREREQ([2.67]) 
AC_INIT([libgltools.la], [0.1], [[email protected]]) 
AM_INIT_AUTOMAKE([libgltools.la], [0.1]) 
AC_PROG_LIBTOOL 
AC_SUBST(LIBTOOL_DEPS) 
AC_CONFIG_MACRO_DIR([m4]) 
AC_CONFIG_SRCDIR([src/]) 
AC_CONFIG_HEADERS([include/config.h]) 

# Checks for programs. 
AC_PROG_CXX 
AC_PROG_CC 

# Checks for libraries. 
# FIXME: Replace `main' with a function in `-lGL': 
AC_CHECK_LIB([GL], [main]) 
# FIXME: Replace `main' with a function in `-lGLU': 
AC_CHECK_LIB([GLU], [main]) 
# FIXME: Replace `main' with a function in `-lX11': 
AC_CHECK_LIB([X11], [main]) 
# FIXME: Replace `main' with a function in `-lglut': 
AC_CHECK_LIB([glut], [main]) 
# FIXME: Replace `main' with a function in `-lm': 
AC_CHECK_LIB([m], [main]) 

# Checks for header files. 
AC_PATH_X 
AC_CHECK_HEADERS([inttypes.h stddef.h stdint.h stdlib.h string.h sys/time.h unistd.h]) 

# Checks for typedefs, structures, and compiler characteristics. 
AC_HEADER_STDBOOL 
AC_C_INLINE 
AC_TYPE_INT32_T 
AC_TYPE_INT64_T 
AC_TYPE_UINT64_T 
AC_CHECK_TYPES([ptrdiff_t]) 

# Checks for library functions. 
AC_HEADER_MAJOR 
AC_FUNC_MALLOC 
AC_CHECK_FUNCS([gettimeofday sqrt strchr strstr]) 

AC_CONFIG_FILES([Makefile]) 
AC_OUTPUT 

정말 감사합니다

여기 내 Makefile.am이다.

+0

configure를 실행 했습니까? – TJD

+0

소스 트리에서'libtoolize'를 실행 했습니까? –

+0

디렉토리에'GLBatch.cpp' 파일이 있습니까? – adl

답변

3

그것은 당신의 설명에 따라 말을 열심히하지만 난 당신이처럼 보이는 GLTools 디렉토리에 Makefile.am를 생성 한 후 src 디렉토리에 Makefile.am를 넣어 필요가 내기 것 :

SUBDIRS = src 
ACLOCAL_AMFLAGS = -I m4 

그것은이다 non-recursive make도 할 수 있지만 추가 설정이 필요합니다. 여기

나는 당신을 위해 그것을했다 :

https://github.com/msteinert/gltools

+2

대단히 감사합니다. 그거였다! 나는 소스가 src /에 있다는 것을 잊어 버렸습니다. 그냥 레코드를 위해서'make : *** '타겟을 만들기위한 규칙이 없다.'libgltools.la '에 필요한'all '이라는 에러가있어서'AC_CONFIG_FILES'에 src/Makefile을 추가해야했다. 도움말에 대한 환호. –

+0

"내가 너에게 해줬 어." 하하, 네가 한 것을 알았다. 그리고 너는 나보다 나은 직업도 가졌어. –

0
당신은 당신의 configure.ac 파일 어딘가에 추가해야

: 대안

LT_INIT 
LT_LANG([C++]) 

또는 문서에 따라 :

LT_INIT 
AC_PROG_CXX