In all cases, the
README.md should contain a a SPDX license identifier:
SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later
You can do it like that:
This work is dual-licensed under BSD and GPL 2.0 (or any later version).
You can choose between one of them if you use this work.
`SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later`
BSD-3-Clause OR GPL-2.0-or-later and
BSD-3-Clause AND GPL-2.0-or-later makes a big difference. The former means that the user can choose between both (which is the regular case!) and the second one denotes that the user has to comply to both licenses. See also multi licensing on Wikipedia.
In a presentation of the SPDX creators, they propose to create a
LICENSE file containing a SPDX expression (slide 12).
BSD-3-Clause OR GPL-2.0-or-later
You could add two additional LICENSE files then:
Note that I am using the new (as of 2017-12-28) SPDX License List 3.0 here. The versions of 2017 had
GPL-2.0 is identifier for GPL 2.0, but it was not clear whether that meant "GPL 2.0 only" or "GPL 2.0 or any later version".
Eclipse Foundation Way
If the project code is distributed under multiple licenses then the text of those licenses must be included. The file should start with a short paragraph that describes how the licenses are combined. This statement should in most cases, be exactly the same as the license statement in the file copyright and license headers (see the example below).
Example License File (dual-licensed EPL-2.0 or Apache-2.0).
This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0, or the Apache Software License
2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0.
... Text of the Eclipse Public License 2.0 ...
... Text of the Apache Software License 2.0 ...