Hello list.

Since some time the cool '.SECONDEXPANSION' feature has
stopped working for me. In a Makefile, I have many rules
to link module .DLLs:

  mod_airspy_source_OBJ   = $(OBJ_DIR)/airspy_source_main.obj
  mod_airspyhf_source_OBJ = $(OBJ_DIR)/airspyhf_source_main.obj
  mod_bladerf_source_OBJ  = $(OBJ_DIR)/bladerf_source_main.obj
  ...

  .SECONDEXPANSION:
  modules/%.dll: $$(mod_$$*_OBJ)
        $(call link_DLL, $@, $^)

  $(mod_airspy_source_OBJ): \
     EXTRA_CFLAGS = -I./source_modules/airspy_source/src
   ...

  $(OBJ_DIR)/%_main.obj: source_modules/%/src/main.cpp
     $(call CPP_compile, $<, $@)

  define CPP_compile
    $(CC) @$(CC).args $(EXTRA_CFLAGS) -Fo$(strip $(2)) $(1)
    @echo
  endef

---------------------------------------------------

My problem is that 'EXTRA_CFLAGS' is NOT picked up by
the above pattern compile rule when the .SECONDEXPANSION
rule is used. This used to work for sure.

Now, I have to add a 'link_DLL' macro-call for each .DLL.

BTW. Perhaps my problem is related to:
  https://savannah.gnu.org/bugs/?60799

--
--gv

Reply via email to