Amacım, tüm nesne dosyalarını Makefile'nin kökü yerine bir .objs dizininde yerleşik olarak bulundurmak ve projenin bin/ dizinine kopyalanan ikili dosyaları (ve kitaplıkları) bulundurmaktır . Ama bunu nasıl yapacağımı açıklayacak herhangi bir kaynak bulamadım. Bunu yapmak için nasıl giderim?Autotools kütüphanesi ve nesne dosyası çıktı kontrolü
Burada benim configure.ac ve src/Makefile.am var. - Başvurulan iki paylaşılan kitaplık için benzer Makefile.am dosyalarına sahibim. Onlar derlemek ve gerektiği gibi bin/ dizin çalışmalarına kopyalayarak sonra. Sadece bu süreci otomatikleştirmek istiyorum.
configure.ac
AC_PREREQ([2.63])
AC_INIT([gtkworkbook], [0.12], [[email protected]])
AC_CONFIG_SRCDIR([gtkworkbook/cell.c])
AM_INIT_AUTOMAKE([gtkworkbook], [0.12])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PROG_LIBTOOL
AC_PROG_CC_C_O
AC_CHECK_LIB([pthread], [pthread_mutex_init], [], [
echo "pthread library is missing. pthread is required for this program"
exit -1])
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_SIZE_T
# Checks for library functions.
AC_CHECK_FUNCS([gethostbyname memset socket])
AC_OUTPUT([Makefile
csv/Makefile
gtkworkbook/Makefile
src/Makefile])
src/Makefile.am
AUTOMAKE_OPTIONS= foreign
C_FLAGS= -I/usr/local/include -I/usr/include -I/usr/local/include/gtkextra-2.0 -I$(top_srcdir)/include `pkg-config gtk+-2.0 glib-2.0 --cflags`
L_FLAGS= -L/usr/local/lib -L/usr/lib -L$(top_srcdir)/lib `pkg-config gtk+-2.0 glib-2.0 --libs` -lgtkextra-x11-2.0
bin_PROGRAMS= gtkworkbook
gtkworkbook_SOURCES= application.c config.c main.c parse.c plugin.c
gtkworkbook_CFLAGS= -Wall -lgthread-2.0 -std=c99 $(C_FLAGS)
gtkworkbook_LFLAGS= -ldl $(L_FLAGS)
gtkworkbook_LDFLAGS= $(L_FLAGS)
gtkworkbook_LDADD= ../gtkworkbook/libgtkworkbook.la ../csv/libcsv.la
lib_LTLIBRARIES= realtime.la
realtime_la_SOURCES= realtime/CsvParser.cpp realtime/Network.cpp realtime/Packet.cpp realtime/plugin_main.cpp \
realtime/thread_main.cpp realtime/concurrent/Mutex.cpp realtime/concurrent/Semaphore.cpp \
realtime/concurrent/Thread.cpp realtime/concurrent/ThreadGroup.cpp realtime/concurrent/ThreadPool.cpp \
realtime/proactor/Dispatcher.cpp realtime/proactor/Event.cpp realtime/proactor/Proactor.cpp \
realtime/proactor/InputDispatcher.cpp realtime/proactor/Worker.cpp realtime/network/Tcp.cpp
realtime_la_CPPFLAGS= -Wall -Wno-write-strings $(C_FLAGS)
realtime_la_LFLAGS= -lgtkworkbook -lcsv $(L_FLAGS)
realtime_la_LDFLAGS= -module -export-dynamic
realtime_la_LIBADD= ../gtkworkbook/libgtkworkbook.la ../csv/libcsv.la
Yani, sorum (her Makefile derleme sonuçları için I çıkış dizinleri belirtmek için nasıl onları bin/ kopyalanacak ve nesne dosyaları için her yanlısı obj olmak isteyen Makefile'nin kökü yerine ject. Yardım için
Teşekkür bugüne kadar .. Bu web sitesi büyük bir kaynak olmuştur ve zaten sağlanan bağlantılardan çok şey öğrendik.
Yapılandırma komut satırı aracılığıyla geçersiz kılınabilecek bir şey değil mi? –