Context
-------

I'm using `org-babel-tangle` to generate my configuration from an Org file `config.org`. Recently, I did some clean-up by

1. dispatching `config.org` to multiple Org files `config/*.org`;
2. replace the content of `config.org` with multiple `#+INCLUDE: config/*.org` directives.

To illustrate a bit, the directory tree is as follows:

```
config/
|______ A.org
|______ B.org
|______ C.org
|
config.org

```

where

```
## config.org
#+INCLUDE: config/A.org
#+INCLUDE: config/B.org
#+INCLUDE: config/C.org
...

```

and

```
## [ABC].org
#+BEGIN_SRC emacs-lisp :tangle target1.el
;; elisp code
#+END_SRC

#+BEGIN_SRC emacs-lisp :tangle target2.el
;; elisp code
#+END_SRC
...

```

Issue & attempt
---------------

However, I ran into the issue that `org-babel-tangle` doesn't handle `#+INCLUDE` directives. So, I follow the idea of [this post](https://dev.to/jfhbrook/multi-file-org-babel-tangles-with-include-directives-5522) which consists of

1. exporting `config.org` to an Org file `config-export.org` with `org-export-to-file`;
2. `org-babel-tangle` the exported Org file `config-export.org` to tangle targets.

This approach does replace the multiple `#+INCLUDE` directives of `config.org` by the content of `config/*.org`, but all tangle options are **erased**. Namely, the exported `config-export.org` looks like this (all emacs-lisp tangle target filename are lost):

```
## config-export.org
#+BEGIN_SRC emacs-lisp
;; elisp code for target1.el
#+END_SRC

#+BEGIN_SRC emacs-lisp
;; elisp code for target2.el
#+END_SRC
...

```

Question
--------

How to `org-babel-tangle` an Org file with `#+INCLUDE` directives as it is intended?

(*i.e.* (1) include all Org files (preserving `:tangle target.el`), then (2) `org-babel-tangle` the whole Org file.)

Related question
----------------

A similar [question](https://lists.gnu.org/archive/html/emacs-orgmode/2010-09/msg00808.html) has been raised in the Org mode mailing-list.