Equivalence of two definitions of Almost Complex Structure. Let $M$ be a smooth manifold of even dimension $2n$. I would like to understand the equivalence of the following two standard definitions for an almost complex structure on $M$.

Denote by $TM$ the tangent bundle of $M$. Then the first definition I wish to consider is the following.


  Definition 1 An almost complex structure on $M$ is a vector bundle morphism $J:TM\rightarrow TM$ satisfying $J^2=-id_{TM}$.


Now $TM$ is a real vector bundle of rank $2n$ over $M$ and is thus classified up to bundle isomorphism by the homotopy class of a map $\tau_M:M\rightarrow BGl(\mathbb{R}^{2n})$, where $BGl(\mathbb{R}^{2n})$ is the classifying space of the Lie group $Gl(\mathbb{R}^{2n})$. The complex general linear group $Gl(\mathbb{C}^n)$ also has a classifying space $BGl(\mathbb{C}^n)$, and the map $\mathbb{C}^n\rightarrow \mathbb{R}^{2n}$, $\underline z=\underline x+i\underline y\mapsto (\underline x,\underline y)$, corresponds to a homomorphism $r:Gl(\mathbb{C}^n)\rightarrow Gl(\mathbb{R}^{2n})$ given by

$$r(X)=r(A+iB)=\begin{pmatrix}A &amp; -B\\B &amp; A\end{pmatrix}$$

where $A$, $B$ are real matrices. This homomorphism subsequently induces a map of classifying spaces $Br:Gl(\mathbb{C}^n)\rightarrow BGl(\mathbb{R}^{2n})$ with homotopy fibre $Gl(\mathbb{R}^{2n})/Gl(\mathbb{C}^n)$.


  Definition 2 An almost complex structure on $M$ is a lift through $Br$, up to homotopy, of the classifying map $\tau_M$. $$\begin{array}{ccccccccc}
    &amp; &amp; BGl(\mathbb{C}^n) \\
    &amp;  \nearrow &amp; \downarrow{Br}\\
    M &amp; \xrightarrow{\tau_M} &amp; BGl(\mathbb{R}^{2n}). 
    \end{array}$$


Remark that $BGl(\mathbb{R}^{2n})$ is modelled by the Grassmannian $Gr_{2n}(\mathbb{R}^{\infty})$ of $2n$-planes in $\mathbb{R}^\infty$, and a corresponding statement holds for $BGl(\mathbb{C}^{n})$. Since $M$ is finite dimensional the map $\tau_M$ will factor through the inclusion $Gr_{2n}(\mathbb{R}^{2N})\hookrightarrow Gr_{2n}(\mathbb{R}^{\infty})$ for some $N\geq n$, and $Gr_{2n}(\mathbb{R}^{2N})$ may be given the structure of a smooth manifold and $\tau_M$ represented by a smooth map.  Similarly $Gr_{N}(\mathbb{C}^{N})$ carries the structure of a complex manifold and $Br|$ may be chosen to be a smooth map between these spaces.

Now my question: How are these two definition equivalent?
The key point is to understand how the classifying map works. Here's one way to:

One can produce a bundle-embedding $TM \hookrightarrow M \times \bf R^\infty$ (which can moreover factor through some trivial bundle with finite-dimensional fibers), in which case there is a Gauss map $\mathscr{G} : M \to \text{Gr}_{2n}(\mathbf{R}^\infty)$ defined by sending each point $p \in M$ to the tangent space $T_p M \subset \mathbf{R}^\infty$. Modelling $B\text{GL}_{2n}(\mathbf{R})$ on $\text{Gr}_{2n}(\mathbf{R}^\infty)$, this map $\mathscr{G}$ is exactly the classifying map of the tangent bundle of $M$. This map does not depend on the bundle-embedding upto homotopy and one can recover $TM$ as $\mathscr{G}^* \gamma_{2n}$ where $\gamma_k \to \text{Gr}_k(\mathbf{R}^\infty)$ is the tautological $k$-plane bundle.

If $M$ admits a complex structure, then the fibers of $TM$ admit a (fiberwise continuously varying) complex structure. This enables one to construct a bundle embedding $TM \hookrightarrow M \times \bf R^\infty$ such that if $\mathbf{R}^\infty$ is realized as a "$\infty/2$"-dimensional complex vector space $\mathbf{C}^\infty$, then the bundle-embedding respects the fiberwise complex structure, i.e., $T_p M \subset \mathbf{C}^\infty$ is a $n$-dimensional complex subspace. Once that is done, let $\mathscr{G}$ be the corresponding Gauss map.

Then $\mathscr{G}$ has a natural lift to a map $M \to \text{Gr}_n(\mathbf{C}^\infty)$, factoring through the map of Grassmannians $\text{Gr}_n(\mathbf{C}^\infty) \to \text{Gr}_{2n}(\mathbf{R}^\infty)$ sending a complex $n$-subspace of $\mathbf{C}^\infty = \mathbf{R}^{2\infty}$ to it's underlying real $2n$-subspace. Modelling $B\text{GL}_n(\mathbf{C})$ as $\text{Gr}_n(\mathbf{C}^\infty)$ once again, this is the same as Definition 2. If the classifying space were modeled otherwise, one would have to do the checking that the map $Br : B\text{GL}_n(\mathbf{C}) \to B\text{GL}_{2n}(\mathbf{R})$ you wrote down is naturally isomorphic to the Grassmannian-level map I wrote down, by a commutative diagram.

This shows Definition 1 implies Definition 2. Can you try the converse?
1 implies 2. Suppose defined an almost complex structure on $M$. Consider an atlas $U_i$ of $M$ where $U_i$ is contractible and diffeomorphic to an open subset of $
\mathbb
{R} ^n$. The restriction $TM_i$ of the tangent bundle $TM$ to $U_i$ is trivial. Let $J_i$ be the restriction of $J$ to $U_i$, there exists an isomorphism of pseudocomplex bundles $g_{ij} $ between the restriction of $(TM_j, J_j)$ and $(TM_x, J_x)$ to $U_i\cap U_j$. The family of morphisms $g_{ij} $ is a trivialisation of $TM$.  Remark that $g_{ij}(x) $ is a complex automorphism of $(TM_x, J_x)$. Thus it is an element of $Gl(n, \mathbb{C})$ and $TM$ has a $Gl(n, \mathbb{C})$ reduction.

2 implies 1. The existence of $\tau_M$ is equivalent to saying that $TM$ has a $Gl(n, \mathbb{C})$ reduction, which is equivalent to saying that we can suppose that $g_{ij} (x) \in Gl(n, \mathbb{C})$. Denote by $J_i$ the standard complex structure on $U_i$ and $f_i$ a partition of unity associated to $U_i$, write $J=\sum f_iJ_i$.