Articles of makefile

Ruta del directorio de archivo MAKU común

Estoy tratando de consolidar cierta información de comstackción utilizando un archivo MAKE común. Mi problema es que quiero usar ese archivo make desde diferentes niveles de subdirectorio, lo que hace que el valor del directorio de trabajo ( pwd ) sea impredecible. Por ejemplo: # Makefile.common TOP := $(shell pwd) COMPONENT_DIR := $(TOP)/component COMPONENT_INC := […]

Por qué siempre ./configure; hacer; hacer la instalación; como 3 pasos separados?

Cada vez que comstack algo de la fuente, sigue los mismos 3 pasos: $ ./configure $ make $ make install Entiendo que tiene sentido dividir el proceso de instalación en diferentes pasos, pero no entiendo, por qué todos y cada uno de los codificadores de este planeta tienen que escribir los mismos tres comandos una […]

Regla genérica de makefile a CMake

Estoy tratando de “traducir” las líneas fluidas de makefile de vainilla en la syntax de CMake. SRCS = $(wildcard *.foo) OBJS = $(SRCS:.foo=.bar) my_rule: $(OBJS) %.bar: %.foo make_bar_from_foo $@ $< Trabajo feo bash FILE(GLOB SRCS “*.foo”) SET(outFiles) FOREACH(SRC ${SRCS}) SET(OUTPUT_FILE_NAME “${SRC}.bar”) ADD_CUSTOM_COMMAND( OUTPUT “${OUTPUT_FILE_NAME}” COMMAND make_bar_from_foo ${SRC} ${OUTPUT_FILE_NAME} DEPENDS “${SRC}”) SET(outFiles ${outFiles} “${OUTPUT_FILE_NAME}”) ENDFOREACH(SRC) ADD_CUSTOM_TARGET(my_rule […]

¿Por qué el indicador del enlazador de la biblioteca a veces tiene que ir al final usando GCC?

Estoy escribiendo un pequeño progtwig de C que usa librt. Estoy bastante sorprendido de que el progtwig no se compile si coloco el indicador de enlace al comienzo en lugar de al final: Por el momento, para comstackr el progtwig que hago: gcc -o prog prog.c -lrt -std=gnu99 Si tuviera que hacer lo siguiente, no […]

Construyendo el progtwig C “fuera del árbol fuente” con GNU make

Me gustaría construir un proyecto C para mi microcontrolador con la herramienta de creación GNU. Me gustaría hacerlo de una manera limpia, de modo que mi código fuente no esté repleto de archivos de objeto y otras cosas después de la comstackción. Así que imagina que tengo una carpeta de proyecto, llamada “myProject” con dos […]

Cómo leer una variable CMake en código fuente C ++

Me gustaría almacenar el número de versión de mi biblioteca en un solo lugar. Así que he definido dicha variable en el archivo CMake: SET(LIBINTERFACE_VERSION 1 CACHE INTEGER “Version of libInterface”) Con esta definición puedo generar un archivo version.rc según la definición de Microsoft, que compilo en la biblioteca y luego aparece correctamente en la […]

CMake: ¿Cómo configurar LDFLAGS en CMakeLists.txt?

Configuré CFLAGS en CMake por CMAKE_C_FLAGS. ¿Es algo así para configurar LDFLAGS?

¿Cómo escribir un bucle en un Makefile?

Quiero ejecutar los siguientes comandos: ./a.out 1 ./a.out 2 ./a.out 3 ./a.out 4 . . . and so on ¿Cómo escribir esto como un bucle en un Makefile ?

Comstackndo con g ++ usando múltiples núcleos

Pregunta rápida: ¿cuál es la bandera del comstackdor para permitir que g ++ engendre varias instancias de sí mismo para comstackr proyectos grandes más rápido (por ejemplo, 4 archivos fuente a la vez para una CPU multi-core)? Muchas gracias.

¿Por qué no se activan las reglas de patrones implícitos .PHONY?

Tengo el siguiente archivo MFP recursivo: .PHONY: all clean %.subdir: $(MAKE) -C src $* $(MAKE) -C dict $* all: all.subdir clean: clean.subdir y funciona bien: $ make all make -C src all make[1]: Entering directory `/or-1.3.6-fix/src’ make[1]: Nothing to be done for `all’. make[1]: Leaving directory `/or-1.3.6-fix/src’ make -C dict all make[1]: Entering directory `/or-1.3.6-fix/dict’ […]