मेरा लक्ष्य मेकफ़ाइल की जड़ की बजाय .objs निर्देशिका में निर्मित सभी ऑब्जेक्ट फ़ाइलों को रखना है और प्रोजेक्ट के बिन/ निर्देशिका में बाइनरी (और लाइब्रेरीज़) की प्रतिलिपि बनाने के लिए है । लेकिन मैं यह समझाने के लिए कोई संसाधन नहीं ढूंढ पाया कि यह कैसे करें। मैं ऐसा कैसे कर पाऊंगा?ऑटोटूल लाइब्रेरी और ऑब्जेक्ट फ़ाइल आउटपुट कंट्रोल
यहां मेरा config.ac और src/Makefile.am - मेरे पास दो साझा पुस्तकालयों के लिए समान Makefile.am फ़ाइलें हैं जिन्हें संदर्भित किया गया है। वे संकलित करते हैं, और बिन/ निर्देशिका कार्य को कॉपी करने के बाद उन्हें काम करते हैं। मैं बस इस प्रक्रिया को स्वचालित करने के लिए देख रहा हूँ।
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
तो, मेरे सवाल (मैं प्रत्येक Makefile का संकलन परिणामों के लिए उत्पादन निर्देशिकाओं को निर्दिष्ट करने के लिए कैसे है उन्हें बिन/ पर कॉपी करने की इच्छा है, और ऑब्जेक्ट फ़ाइलों के लिए में .obj प्रत्येक प्रो के लिए मेकफ़ाइल की जड़ में इसके बजाय ject।
इस प्रकार सहायता के लिए धन्यवाद .. यह वेबसाइट एक महान संसाधन रहा है, और मैंने पहले से दिए गए लिंक से बहुत कुछ सीखा है।
यह ऐसा कुछ नहीं है जिसे कॉन्फ़िगर कमांड लाइन के माध्यम से ओवरराइड किया जा सके? –